P. 1
26084006-pl-sql-interview-qns

26084006-pl-sql-interview-qns

|Views: 187|Likes:

More info:

Published by: Chandra Babu Naidu Veluri on Mar 10, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/14/2015

pdf

text

original

1. How to implement ISNUMERIC function in SQL *Plus ? Method 1: Select length (translate (trim (column_name),' +-.

0123456789',' ')) from dual ; Will give you a zero if it is a number or greater than zero if not numeric (actually gives the count of non numeric characters) Method 2: select instr(translate('wwww', 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX'),'X') FROM dual; It returns 0 if it is a number, 1 if it is not. 2. How to Select last N records from a Table? select * from (select rownum a, CLASS_CODE,CLASS_DESC from clm) where a > ( select (max(rownum)-10) from clm) Here N = 10 The following query has a Problem of performance in the execution of the following query where the table ter.ter_master have 22231 records. So the results are obtained after hours. Cursor rem_master(brepno VARCHAR2) IS select a.* from ter.ter_master a where NOT a.repno in (select repno from ermast) and (brepno = 'ALL' or a.repno > brepno) Order by a.repno What are steps required tuning this query to improve its performance? ?ϠHave an index on TER_MASTER.REPNO and one on ERMAST.REPNO ?ϠBe sure to get familiar with EXPLAIN PLAN. This can help you determine the execution path that Oracle takes. If you are using Cost Based Optimizer mode, then be sure that your statistics on TER_MASTER are up-to-date. ?ϠAlso, you can change your SQL to: SELECT a.*

FROM ter.ter_master a WHERE NOT EXISTS (SELECT b.repno FROM ermast b WHERE a.repno=b.repno) AND (a.brepno = 'ALL' or a.repno > a.brepno) ORDER BY a.repno; 3. What is the difference between Truncate and Delete interms of Referential Integrity? DELETE removes one or more records in a table, checking referential Constraints (to see if there are dependent child records) and firing any DELETE triggers. In the order you are deleting (child first then parent) There will be no problems. TRUNCATE removes ALL records in a table. It does not execute any triggers. Also, it only checks for the existence (and status) of another foreign key Pointing to the table. If one exists and is enabled, then you will get The following error. This is true even if you do the child tables first. ORA-02266: unique/primary keys in table referenced by enabled foreign keys You should disable the foreign key constraints in the child tables before issuing the TRUNCATE command, then re-enable them afterwards. CLIENT/SERVER What does preemptive in preemptive multitasking mean ? Preemptive refers to the fact that each task is alloted fixed time slots and at the end of that time slot the next task is started. What does the OLTP stands for ? OLTP stands for On Line Transaction Processing What is the most important requirement for OLTP ? OLTP requires real time response. In a client server environment, what would be the major work that the client deals with ? The client deals with the user interface part of the system. Why is the most of the processing done at the sever ? To reduce the network traffic and for application sharing and implementing business rules.

What does teh term upsizing refer to ? Applications that have outgrown their environment are re-engineered to run in a larger environment. This is upsizing. What does one do when one is rightsizing ? With rightsizing, one would move applications to the most appropriate server platforms. What does the term downsizing refer to ? A host based application is re-engineered to run in smaller or LAN based environment. What is event trigger ? An event trigger, a segment of code which is associated with each event and is fired when the event occurs. Why do stored procedures reduce network traffic ? When a stored procedure is called, only the procedure call is sent to the server and not the statements that the procedure contains. What are the types of processes that a server runs ? Foreground process and Background process. What is a event handler ? An event handler is a routine that is written to respond to a particular event. What is an integrity constraint ? An integrity constraint allows the definition of certain restrictions, at the table level, on the data that is entered into a table. What are the various uses of database triggers ? Database triggers can be used to enforce business rules, to maintain derived values and perform value-based auditing. What is a transaction ? A transaction is a set of operations that begin when the first DML is issued and end when

4. 2. Enforcing integrity rules globally. What are the responsibilities of a Server ? 1. What are the advantages of client/server model ? Flexibility of the system. What is the first work of Client process ? A client process at first establishes connection with the Server. Ring. Protecting the databse and recovering it from crashes. Bus. May not be suitable for all applications. improved network and resource utilization. BEGIN COMMIT/ROLLBACK are the boundries of a transaction. Managing and tuning networks becomes difficult.a commit or rollback is issued. scalability. What are the disadvantages of the client/server model ? Heterogeneity of the system results in reduced reliablity. increase of developers productivity. cost saving. 3. Controlling database access and security. What are the three components of a client server model ? A Client. centralised control and implementation of business rules. . A Server and A Network/Communication software. What are the different topologies available for network ? Star. Manage resources optimally across multiple clients. A stored has to be specifically invoked. Why is it better to use an integrity constraint to validate data in a table than to use a stored procedure ? Because an integrity constraint is automatically checked while data is inserted into a table. portability. Why are the integrity constraints preferred to database triggers ? Because it is easier to define an integrity constraint than a database trigger.

Other Events. An ODBC manager/administrator and . in a Client/Server context. What are the two components of ODBC ? 1. User Events 4. Give some examples of standard API??s ? Open Database Connectivity (ODBC). What is inheritance ? Inheritance is a method by which properties and methods of an existing object are automatically passed to any object derived from it. XOpen SQL/CLI What is the main advantage of developing an application using an API ? The application can be connected to any back end server that is supported by the API. What is the main disadvantage of developing an application using an API ? The application cannot use any special features of the backend server. System Events. Integrated Database Application Programming Interface (IDAPI). 2. What are the four types of events ? 1. Why is an event driven program referred to a passive program ? Because an event driven program is always waiting for something to happen before processing. is a specification of a set of functions for communication between the client and the server. Control Events 3. what does API (Application Programming Interface) refer to ? An API.In a Client/Server context. What is the difference between file server and a database server ? A file server just transfers all the data requested by all its client and the client processes the data while a database server runs the query and sends only the query output.

2. ODBC driver. What is the function of a ODBC manager ? The ODBC Manager manages all the data sources that exists in the system. What is the function of a ODBC Driver ? The ODBC Driver allows the developer to talk to the back end database. What description of a data source is required for ODBC ? The name of the DBMS, the location of the source and the database dependent information. How is a connection establised by ODBC ? ODBC uses the description of the datasource available in the ODBC.INI file to load the required drivers to access that particular back end database. RDBMS FUNDAMENTALS I. INTRODUCING DATABASES : Concept of a Database : Traditional Approach : In this approach, independent application programs access their own independent data files. This results in many problems in data storage and retrieval. Database Approach : In this approach, all application access a common database, which is a centralized data storage system. This approach has the following advantages : Redundancy of data storage is reduced, Inconsistency in data is eliminated & Data sharing between applications is possible. Interacting with a Database : Database Management System (DBMS) : DBMS is a software that interfaces between applications and a database for all data processing activities. Users of a DBMS : End Users, Application Programmers and Database Administrators use a DBMS, either directly or indirectly. How users interact with a Database : 1. End users send queries to the DBMS through applications. 2. The DBMS translates the queries. 3. The DBMS retrieves data from the database. 4. The DBMS sends data to the application, which present the data to the end users. Functions of a DBMS : Function of DBMS Description Provided by using Defining the data structure Defining structure of data to be stored in database Data Definition Language (DDL) Manipulating Data Retrieving, adding, modifying, deleting data. Data Manipulation Language (DML) Data Security Preventing unauthorized access to data. User-ids and Passwords.

Control of Data Access Allowing users to use only relevant data Data Control Language (DCL) Architecture of a Database : Need for an Architecture : The details about complexity and structure of data in a database in not required by end-users. Therefore, differentiating what the end-users see and what is actually there in a database is important. Architecture of a Database : The architecture of a database comprises a set of three levels at which a database can be viewed. External Level or View, Conceptual Level or View & Internal Level or View. II. USING RELATIONAL DATABASE : Basics of Relational Database : Relational Database Management System (RDBMS) : RDBMS is the most popular form of DBMS used in the world. It uses a relational database to organize data. A relational database comprise relations, which are represented as tables. Relation : A relation stores information about an object in the real world. A relation is represented as a table. Attribute : Each attribute of a relation stores a piece of information about an object. Attributes are represented as columns in a tables and can be arranged in any order. Each attribute in a relation is unique and contain atomic values i.e. Atomic value contain a single value of data and Non-Atomic values contain a set of values. The number of attributes in a relation is called the degree of the relation. Tuple : A row in a table is called a tuple of the relation. The number of tuples in a relation is known as the cardinality of the relation. Tuples in a table are unique and can be arranged in any order. Domain : A domain is a set of valid atomic values that an attribute can take. Within a single database, an attribute cannot have different domains associated with it. A domain can include a null value, if the value for the domain is unknown or does not exist. Identifiers for Relations : Primary Key : An attribute that uniquely identifies a row in a table is called its primary key. A relation can have only one primary key. The primary key cannot have any null values. In case no unique key is found in a relation, two or more attributes can be treated as the primary key. Such keys are called Composite Keys. Candidate Key : A relation can have more than one attribute that uniquely identifies a tuple. Any one of these keys can be selected as the primary key. All such attributes are called Candidate Keys. All candidate keys that are not primary keys are called Alternate Keys. Foreign Key : An attribute that is not a candidate key is called a Nonkey. A nonkey attribute of a relation whose value matches the primary key in some other table is called Foreign Key OR is a column in a table that uniquely identifies rows from a different table. III. INTERPRETING DATA : Entities and Relationships : Entity : An entity is an object that exists in the real world and is distinguishable from other objects. Each entity is represented as a table in a relational database. Types of Entities : Entities can be classified in two ways - based on existence and based on subsets.

Based on existence, entities can be classified as Dominant and Weak entities. Based on subsets, entities can be classifies as Supertypes and Subtypes. Relationships : A relationship is an association between two entities. Types of Relationships : Relationships are classified into three types based on the occurrence of the related entities. One-to-One(1-1), One-to-Many(1-M) & Many-to-Many(M-M). Using E/R Diagram : A E/R diagram represent entities and relationships in a database system. Reducing E/R Diagrams to Relations : Mapping Entities : A dominant entity is mapped to a new relation. A weak entity is mapped to a new relation. The primary key of the corresponding dominant entity is included as the foreign key in the weak entity relation. Supertypes and subtypes are mapped to separate relations. The primary key of the supertype becomes the primary key of the subtype. Mapping Relationships : A 1-1 relationship is mapped using a foreign key. The primary key of either of the entities is include as a foreign key in the relation of the other entity. This relationship is rare, because data elements related in this way are normally placed in the same table. A 1-M or M-1 is mapped by introducing a foreign key. A primary key is the ??one?? side of the relationship, and the foreign key is the ??many?? side of the relationship. This relationship are most common. A M-M involves the creation of a new relation. M-M are problematic and cannot be adequately expressed directly in a relational db. It is expressed using intersection tables. An intersection table contains two (or more) foreign keys, relating the primary key values of two (or more) tables to each other. The role of an intersection table is to convert the M-M into two 1-M relationships that can be easily handled by the database. IV. SIMPLIFYING DATA : Need for Simplifying Data : Normalization : Normalization is a formal process of developing data structures in a manner that eliminates redundancy and promotes integrity. You need to simplify structure of data in relations for easy storage and retrieval. The process of simplifying relations is called normalization. The new relations that are obtained after normalization are called normalized relations. Normalization has three well defined steps : The relations that you get at the end of the first step are said to be in 1NF. The relations that you get at the end of the second step are said to be in 2NF. The relations that you get at the end of the third step are said to be in 3NF. Simplifying Data to 1NF (Eliminate Repeating Groups) : A repeating group is a set of columns that store similar info that repeats in the same table. To simplify data to 1NF, you ensure that all attributes values in a relation have atomic values. If there are attributes in a relation with non-atomic values, move these attributes to a new relation and choose an appropriate primary key for it. E.g. SupItem Table Item field having atomic. Simplifying Data to 2NF (Eliminate Redundant Data) : Redundant data is data that is expressed multiple times unnecessarily, or depends only on part of a multi-valued key. Functionally Dependent Attributes : Functionally Dependent Attributes are those that

you ensure that there are no attributes in a relation that are transitively dependent on other attributes.g. Simplifying Data to 3NF (Eliminate Columns not Dependent on the Key) : Columns in each table should be a group of columns in which the data in each column contributes to the description of each row in the table. decimal. Their attributes have data types such as character. integer.DDL. Separating Sup. To simplify data to 3NF. Syntax : CREATE TABLE table-name (column-name data-type [[size]] NOT NULL/DEFAULT default-value]] CHECK (column-name > 0) UNIQUE (column-name) PRIMARY KEY (column-name) FOREIGN KEY (column-name) REFERENCES table-name) ALTER TABLE : This is a DDL command in SQL that modifies the structure of an existing table. Conversion from 1NF to 2NF : To convert a relation in 1NF to 2NF. DML & DCL. DCL : DCL comprises commands you can use to control the user access to the database.belong to a single entity or relationship and depend on its unique identifier. E. choose an appropriate primary key for the new relation. DDL : DDL comprises commands you can use to create and modify the database structure. Then. Simplifying Data to 4NF (Isolate Independent Multiple Relationships) : V. SQL consists of three components . date and time.g. to a new relation. which have the following features : They physically exist on the disk. table. move all nonkey attributes that are not wholly dependent on the primary key. STORING & RETRIEVING DATA : Language Support for an RDBMS : SQL :SQL is the language that provides command to interact with the data in the database. move all transitively dependent attributes to a new relation. Transitively Dependent Attributes : Transitively Dependent Attributes in a relation are those that are dependent on a nonkey attribute and not the primary key. Conversion from 2NF to 3NF : To convert a relation in 2NF to 3NF. delete and query data in the database. table and Item table. DML : DML comprises commands you can use to add. so move those two to separate table. E. To simplify data to 2NF. you ensure that all nonkey attributes in a relation are functionally dependent on the whole key and not part of the key. Syntax : ALTER TABLE table-name ADD (column-name data-type [[size]] [[NOT NULL DEFAULT]]. Status is dependent on City in Sup. choose an appropriate primary key for the new relation.. CREATE TABLE : This is a DDL command in SQL that creates a new table in a database. Then. modify.) primary key definition / foreign key definition . Each of them has a unique name & they contain data that is crucial to an organization. Organizing the Database : Base Tables : A database comprises base tables..

Views have the following features: Views let you restrict the access to data so that end-users see data relevant to them. The command supports the following keywords and clauses : FROM This keyword specifies the name of the table. GROUP BY This keyword groups the query result and lets you generate summary result for each group. An RDBMS accesses the source tables for data to be retrieved from a view. the user will not be able to insert or update a row that could not be selected by the view-with check option prevents this from happening. CREATE VIEW : A view can be created using the CREATE VIEW command. NULL values This value indicates that the data is not present.DROP PRIMARY KEY / DROP FOREIGN KEY) DROP TABLE : This is DDL command in SQL that deletes the an existing table. ORDER BY This keyword sorts the query result on one or more columns. AND This operator is used to combine two or more search conditions. Syntax : DROP TABLE table-name Interacting with a Database : SELECT : This is a DML command in SQL that retrieves data from the database in the form of query results. Syntax : UPDATE table-name SET column-name-value WHERE condition DELETE : This is a DML command in SQL that removes one or more rows of data from a table. Views do not physically exist in the database and only their definition is stored by an RDBMS. Any changes that users make to views do not reflect in the source tables if the view has been created using a Join condition. . The storage space used by this table is also released. INSERT : This is a DML command in SQL that you use to add data in rows of a table. Syntax : CREATE VIEW view-name (column-names) AS query. For example. SYNTAX : INSERT INTO table-name (column-names) VALUES (constant/NULL) UPDATE : This is a DML command in SQL that you use to change data on rows of a table. * This keyword selects all the columns of the table. WHERE This keyword gives the search condition that specifies the data to be retrieved. Once you delete a table. Restricting Access to a Database : GRANT : This is a DCL command in SQL that you use to grant a specific set of authorities to one or more users. Retrieving Data from a View : Once you create a view. just as you do for a table. Views created WITH CHECK OPTION allows for an added measure of security in a view. all data contained in it is lost and cannot be recovered. It passes its query result to the main query. Subquery This is the query that is place inside the main query. End-user's View of a Database : Views : Views are relations that are derived from one or more source tables. Syntax : DELETE FROM table-name WHERE condition. you can retrieve data from it using the SELECT command.

The rollback command removes the changes of all previous commands in a transaction from the buffer. the value of the primary key is unique and is not null. uncommitted data. Rollback : Rollback is an SQL command that cancels a transaction before it is complete. There are two types of integrity constraints . Uncommitted Data Problem : Uncommitted data problem occurs when a transaction accesses data that has been updated by a previous transaction that has not yet ended.Syntax : GRANT (SQL command) (column-names) ON table-name TO user-name. Client Server Computing Model . An RDBMS provided two types of locks for locking a part of the database . ENSURING INTEGRITY OF DATA : The concept of Data Integrity : Data Integrity : Data Integrity refers to the correctness and completeness of data in a database. the problems of lost update. it gets a shared lock on that part of the database. REVOKE : This is a DCL command in SQL that you use to take away a specific set of authorities from one or more users. Other transactions can also get a shared lock on that part of the database to read data. Shared Locks : If a transaction is only reading data from a database. However. Integrity Constraints : Integrity constraints allows only correct changes to be made to a database.shared locks and exclusive locks. Locking prevents the problem of lost update. or inconsistent data might occur. Referential Integrity : Referential Integrity ensures that for each row in a table. After an RDBMS executes this command all the changes are made to the database. Commit : Commit is an SQL command that indicates the successful end of a transaction. Inconsistent Data Problem : Inconsistent data problem occurs when a transaction accesses data from the database and simultaneously another transaction is changing that data. uncommitted data and inconsistent data. No other transaction can read or change this data. Syntax : REVOKE (SQL command) ON table-name TO user-name. Locking : Locking is a facility provided by an RDBMS to ensure that a transaction does not interfere with any other transaction. VI. it gets an exclusive lock on that part of the database. either all changes are made as a unit or no changes are made. Exclusive Locks : If a transaction is updating data in a database. they cannot change the data. Controlling Concurrent Data Access : Concurrency Control : All RDBMS must ensure that the transactions of concurrent users do not interfere with each other. Grouping commands related to a task : Transaction Processing : A transaction is a sequence of one or more SQL commands that together form a logical task. If it does not handle the transactions properly. Entity Integrity : Entity Integrity ensures that for each row in a table. Lost Update Problem : Lost update problem occurs when an update made by a transaction is lost due to an update made by another transaction. Transaction Processing ensures that when the RDBMS is making changes related to a single task.entity integrity and referential integrity. the value of the foreign key is present in the reference table.

the other problems associated with host-based processing remained.e. The globalization and restructuring have led to a need for distributed and flexible information access. Has features that makes it easy to administer a complicated client server system. Hardware and software choices can be application oriented as they do not necessarily have to run on a proprietary computer. Administration & Maintenance a formidable challenge.A Distributed Computing Paradigm : The client/server paradigm evolved as an attempt to address the new computing needs of business and utilize new technologies. User interfaces were unfriendly. and response times were often poor. OS/2 etc. Disadvantages are : Data was centralized and often not accessible to those who needed it. Such terminal were called Slaves. Client/Server Approach : The client/server paradigm optimizes the use of computer resources by distributing application processing among multiple processors.The Centralized Paradigm : Centralized computing treated applications as an integrated unit. Disadvantages :The inherent heterogeneity makes System Integration. Netware. Intelligent terminals often validated data and provided editing functions. The host computed did all the work. was frequently overloaded. Hardware choices and scalability were limited by proprietary architecture's.I.The First Distributed Computing Paradigm : As PC's and intelligent terminals became available. The same processor generated the user interface and manipulated data. Advantages : Client/Server makes it possible to harness the computing power available on PCs and other workstations in an organization. Oracle Network software SQL*NET support all major network communication protocols TCP/IP. a limited amount of processing was transferred to the terminal. Applications ran on a single processor. Data access was inflexible and governed by available 3GL programs. Dumb terminals were used for data access and display. SPX/IPS. It has got client server feature that developers can use to minimize network traffic between clients & servers. Also called Distributed Application Processing or Co-Operative Application Processing Host Based Processing . Unixware. Client/Server . Named Pipes & DECNET. It reduced the load on the main processor. Slaves were controlled by Master computer which did the main processing and stored all data. The client/server model computers are classified as Clients and Servers. MSDOS. It had one distinct advantage. where Clients are . Computing power can be added in smaller units making the system easily scaleable. Master/Slave . ORACLE 7 is an exceptional RDBMS & also an excellent DB server because it supports all major OS for both clients & servers i. That the client/server model provides an architecture that harness contemporary technology to meet the computing needs of the modern business organization. However. Client Server Paradigm : Introduction : In the past decade. organizations have restructured and become global. Response times are improved as processors are not overloaded. Network traffic is reduced because the processing power available at the end user terminal makes it unnecessary to send detailed instructions over the network as in the case of host based & master/slave systems. That traditional computing paradigms like host-based and master/slave processing do not adequately address the information requirements of modern business.

Used in applications where user interaction is completely static and predetermined. In Distributed Data Management. Typically. Several user process for a single server process. the application logic resides on different computer than the one that has the data and the DBMS. Easy to implement and often provide end-users with totally transparent access to data. There are four attributes of single system image : Location Transparency : Users must be able to access data without knowing the location of the data. It allows multitasking within an application. In non-preemptive multitasking. clients handle user interface function & server handle data management function. Tools such as RDBMS. Remote Procedure Call (RPC) & Application Development Tools are an important part of client/server systems. In Distributed Logic. Support a standard Network Operating System. In Remote Presentation. Client-initiated client/server interactions. the entire presentation part of the application resides on a different computer than the one that has the logic function. Used to enhance the user interface of mainframe based applications. The goal is referred to as single system image. the application controls the CPU time and the CPU is released only after the task is completed. improving response time by allowing the logic to execute simultaneously on several processors. the logic function is placed on more than one platform thus. Goals of Client/Server Paradigm is the end-user. In Preemptive multitasking. RPC is essentially a messaging system which allows stored procedures to be invoked. Such tools improve productivity and also play a role in making client/server systems more open. A communication system that enables clients & servers to communicate. Users should not have to learn & use different commands for accessing data from different locations. Programs and subroutines within a program can execute concurrently in a multithreaded environment. the data and DBMS is distributed among multiple nodes and distribution of application logic. An API is a set of functions that translates client requests into a format that the server can understand. the OS controls the amount of CPU time allocated to a task. A Multitasking OS allocates a certain amount of CPU time to each task. Server control over the services that can be requested by the client. In Distributed Presentation. Servers to arbitrate between conflicting client requests. Database Server should have preemptive multitasking & multithreading capability. Client/Server seeks to provide end-user transparent access to the computing resources of the organization. Client/Server Architecture requires Processing to be distributed over more than one computing system. Multithreading is an extension of multitasking. the presentation function is divided between the client & the server. In Remote Data Management. . There are several application designs possible in the client/server model depending on how application processing is distributed. Application Software. Stored Procedures. Application Program Interfaces. Support a standard RDBMS.requesters of services and Servers are provider of services. Useful in situations where PC or workstations are connected to mainframes. Many RPCs allows procedures to be invoked across heterogeneous platforms and also provide the required data translation services. Multitasking can be defines as the capability of an OS to run multiple applications concurrently.

The physical structure of a network is called Network Topology i. the trigger sets of a series of commands that make the necessary changes. must be able to work on different operating systems. Built into db software and enforced by default. Flow Control. Coaxial Cable & Optic Fibre. Join tables on different platforms. protect transactions from . Stored Procedures i. resizing events. Common computing tasks are represented consistently across applications. Segmentation. Compatibility i.e. if several records are being modified. The rules that govern the process of data transmission in a network are collectively referred to as Network Protocol. Twisted Pair. Also. activation/deactivation events and initialize/terminate events.e. if a single record is being modified. must support standard ANSI SQL since it can communicate with different SQL dialects. Naming. When command is issued. There are three types of transmission media. A table. able to divide database tasks among multiple CPUs.e. Synchronization. an RDBMS must be able to provide transparent access to data.e. Segmenting. Centralized. Handle and manage distributed queries and Ensure that transactions are successfully completed on all relevant databases.e.e. Priority & Error Control. should support wide variety of development tools & be an industry standard. Disadvantage is programmers must write triggers leading to errors. if several pages are being modified. Graphical User Interfaces improve productivity because they reduce learning time and are easier to use. refers to the way the cabling of a network is physically structured. The database server manages data on the system & maintains data integrity. must be able to use SP as they are analyzed. Referential Integrity i. GUI should be portable. Distributed Database Support i. compiled and optimized. Distributed Database Support : The capability of an RDBMS to manage databases lying at more than one location. keyboard events. Concepts for Client/Server : Introduction : RDBMS's standardize data storage and access and are therefore ideal for implementing client/server systems. Client/Server Software : Back-end Software : It is made up of Database Servers & Network Operating Systems. Database server requires some special features. A page. III. able to join tables located on different servers.e. Network : Network has six basic functions. the server locks a record. & manage SQL queries sent to different servers. Bus. Consistent User Interfaces require that applications retain the same user interface across heterogeneous computing platforms. There are three types of network topologies.e. Multithreading i. In Procedural RI. There are three types of data transmission methods. Concurrency Control i. To provide distributed database support.Interoperability requires that applications and processing tasks be freely portable across heterogeneous computing resources. support execution of multiple tasks simultaneously. Enterprise-wide Resource Sharing is the common thread that links all of an enterprise's computing resource II. GUIs : GUI must support mouse events. each db command is associated with a trigger. allows the server to synchronize change to columns that are part of multiple tables. Declarative RI establishes precise rules for use of columns that are common across tables.e. menu events. Transaction Control i. Distributed & Random. SQL Implementation i. support automatic escalation. Star & Ring.

detailing and execution. TRUNC & POWER. controlling & completing. Character Functions are INITCAP. Security & Protocol Support. End User Tools are made up of Decision Support Tools and PC-based add-ons. retrieve. Development Tools are made up of SQL/3GL programming tools & Front-end development tools. all sites rollback. developers. Planning for Migration : Planning is needed to reduce problems with network load. They are MOD. Migrating to Client/Server : Evaluating the Client/Server Option : To evaluate the following before deciding on client/server. Migration plan must include analysis. Client/Server is most suitable for applications are decision support or on-line transaction processing (OLTP). all workstations are notified of database changes. prototyping & implementation as activities. SQL*PLUS : SQL is an English like language consisting of commands to store. selection. use group functions. LAST_DAY. Geographical requirements & Productivity Gains. provide help & edit facility & maintain system variables. To specify system requirements for end-users. SQRT. Application requirements. training & systems maintenance. maintain & regulate access to your database. developers and system administrators as resources. Planning must include end-users. UPPER. ROUND. NVL : Null value function converts a null value to a non-null value for the purpose of evaluating an expression. ORACLE I. BREAK command clarify reports by suppressing repeated values. Implementing Client/Server : The Systems Integration Life Cycle (SILC) is made up of preparation. Managing SILC projects involves planning. SQL*PLUS is an application that recognizes & executes SQL commands & specialized SQL*Plus commands that can customize reports. COLUMN command define column headings & format data values. SUBSTR & LENGTH. To evaluate business priorities to eliminate stagnation & disruption. Date Functions are ADD_MONTHS. ensuring serviceability and monitoring performance. Additional functions are GREATEST & LEAST. NOS controls the transmission of data across the network and manages the sharing of hardware and software resource on the network. COUNT. and if system fails. IV. MIN & SUM. LOWER. MAX. They are AVG. In two phase commit. The training must cover end-users. skipping lines & . Group Functions returns results based upon groups of rows rather than one result per row. MONTHS_BETWEEN & SYSDATE.system failures. The distances are site or city & both developer & enduser productivity are expected to increase. TTITLE & BTITLE are commands to control report headings & footers. System maintenance involves ensures reliability. developers & system administrators. NEXT_DAY. Four important features are Operating Environment Support. Numeric Functions accept numeric I/P & return numeric values. Workstation Support. system managers and the business as a whole.

COMPUTE command control computations on subsets created by the BREAK command. Create an index if there are frequent retrieval of fewer than 10-15% of the rows in a large table and columns are referenced frequently in the WHERE clause. columns in a table is 255. Non-Equijoin returns rows from two or more tables based upon a relationship other than the equality condition in the WHERE clause. Date Range from Jan 4712 BC to Dec 4712 AD. Cannot Query on a long column. is 255 bytes. Correlated Subquery is a subquery that is evaluated once for each row processed by the parent statement. Minus is the product of two tables listing only the non-matching rows. . Data types : Max. Equijoin returns rows from two or more tables joined together based upon a equality condition in the WHERE clause. Long Character data of variable length upto 2GB. Outer & Self join. Implied tradeoff is query speed vs. s is scale -84 to 127. is 16 columns. views. Private . Oracle automatically update indexes. Set Operators supported by Oracle are : Union is the product of two or more tables. update speed.Accessible to creator only.allowing for controlled break points. Long is 64K & Number is 38 digits. Types of Joins are Simple (Equijoin & Non-Equijoin). Use CRSQ to answer multipart questions whose answer depends on the value in each row processed by parent statement.created by DBA & accessible to all the users. Multiple columns can be returned from a Nested Subquery. Self Join joins a table to itself as though it were two separate tables. Intersect is the product of two tables listing only the matching rows.s) p is precision range 1 to 38. Outer Join combines two or more tables returning those rows from one table that have no direct match in the other table. Raw Stores Binary data (Graphics Image & Digitized Sound). SET command changes the system variables affecting the report environment. Drawback is that after generating a sequence number if the transaction is rolled back. JOIN is the form of SELECT command that combines info from two or more tables. Max. size is 2000 & default is 1 byte. Advantages are referencing without specifying the owner and Flexibility to customize a more meaningful naming convention. Two levels are Public . Synonyms is the alias name for table. Parent statement can be Select. SPOOL command creates a print file of the report. Used primarily with Trusted Oracle. then that sequence number is lost. Max. Number(p. Indexes are optional structures associated with tables used to speed query execution and/or guarantee uniqueness. Varchar2 Max. Mslabel Binary format of an OS label. Concatenated index max. Sequences are used for generating sequence numbers without any overhead of locking. Char size is 255. Char. sequences & procedures and are created for reasons of Security and Convenience. Update or Delete.

First user needs a resource locked by the second user and the second user needs a resource locked by the first user.Order of SQL statement execution : Where clause. Commit statement releases all locks. Level etc. Update or Delete statement. Having clause. Data Locks protects data i. Posting is an event that writes Inserts. SQL*Loader is a product for moving data in external files into tables in an Oracle database. Locking are mechanisms intended to prevent destructive interaction between users accessing data. Nextval. Set Transaction is to establish properties for the current transaction. use it in the same sequence and use Commit frequently to release locks. ensures table's structure does not change for the duration of the transaction. To avoid dead locks. Share Update are synonymous with Row Share. Updates & Deletes in the forms to the database but not committing these transactions to the database. Locks ensure data integrity and maximum concurrent access to data. To load data from external files into an Oracle database. Forms check the validity of the data in fields and records during a commit. Dictionary Locks protects the structure of database object i. Rowid. Commit is an event that attempts to make data in the database identical to the data in the form.g. Rollback causes work in the current transaction to be undone. Pseudo Columns behaves like a column in a table but are not actually stored in the table. Exclusive Lock allows queries on locked table but no other activity is allowed. Types of locks are given below. Row Exclusive same as Row Share but prohibits locking in shared mode. E. Currval. Constraining Table is a table that a triggering statement might need to read either directly for a SQL statement or indirectly for a declarative Referential Integrity constraints. Table or Row lock. Locks are used to achieve Consistency : Assures users that the data they are changing or viewing is not changed until the are thro' with it.e. Group By clause. Transaction is defined as all changes made to the database between successive commits. They are automatic. Shared Row Exclusive locks the whole table and allows users to look at rows in the table but prohibit others from locking the table in share or updating them. avoid using exclusive table lock and if using. Savepoint is a point within a particular transaction to which you may rollback without rolling back the entire transaction. Order By clause & Select. consistency and db restrictions. It involves writing or posting data to the database and committing data to the database. Validity check are uniqueness. Integrity : Assures database data and structures reflects all changes made to them in the correct sequence.e. Row Share allows concurrent access to the locked table but prohibits for a exclusive table lock. Internal Locks & Latches protects the internal database structures. Mutating Table is a table that is currently being modified by an Insert. Share Lock allows concurrent queries but prohibits updates to the locked tables. Deadlock is a unique situation in a multi user system that causes two or more users to wait indefinitely for a locked resource. two types of input . Rownum.

The control file describes the data to be loaded. use labels for blocks and loops. Most SQL functions are available outside SQL statement except for group functions. Invoking the loader sqlload username/password controlfilename <options> PL/SQL : Data types are NUMBER. SQL Functions can be referenced within a SQL statement i. constants & exceptions. but a new value cannot be assigned to the index within the loop. Code Simple Loops repeats a sequence of statements multiple times. It describes the Names and format of the data files.. <index> is implicitly of type number. This section is optional. Declarative Section for variables.MAX. DELETE & SELECT. Label a block to allow referencing of DECLAREd objects that would otherwise not be visible because of scoping rules. Exception Handlers which is optional. Specifications for loading data and the Data to be loaded (optional). DATE & BOOLEAN. Numeric (SQRT.POWER).. DATE (ADD_MONTHS.must be provided to SQL*Loader : the data itself and the control file. Syntax : FOR <index> IN [[ REVERSE ]] <integer>. Attributes of PL/SQL objects are %TYPE. Code While Loops repeats a sequence of statements until a specific condition is no longer TRUE. PL/SQL supports only DML i. CHAR/VARCHAR2.e. Syntax : WHILE <condition> LOOP <sequence of statements> END LOOP. Character (LENGTH.ROUND. UPDATE. Arrays are not allowed & only one identifier per line is allowed.UPPER). Syntax : GOTO label_name. Legally use a GOTO a statement that is in the same sequence of statements as the GOTO. Code GOTO Statements jumps to a different place in the PL/SQL block. Used as targets for GOTO statements. Labels can label any statement.MONTHS_BETWEEN) & Group (AVG. Executable Section which is mandatory. %ROWTYPE. PL/SQL Block is a standard PL/SQL code segment. Label a block to allow a variable to be referenced that might be hidden by a column name.COUNT).<integer> LOOP <sequence of statements> END LOOP.e.INTO. <condition> can be any legal PL/SQL condition & statements will be repeated as long as condition evaluates to TRUE. Syntax : LOOP <Sequence of Statements> END LOOP. In the sequence of statements that encloses the GOTO statement (outer block). Code Numeric FOR Loops repeat a sequence of statements a fixed number of times. INSERT. Defined only within the loop & Value can be referenced in an expression.. Label a loop to allow an object to be reference that would otherwise not be visible because of scoping rules & Label an EXIT . Block consists of three parts.

%ROWCOUNT & %ISOPEN. Two types are Explicit i. errors are called exceptions. CFL specify a set of rows from a table using the cursor's name. Declare the cursor to associate its name with a SELECT statement. FETCH & CLOSE do not apply.as a convenient way to specify exits from outer loops.>. Declare cursors to use parameters Syntax : DECLARE CURSOR <cursor_name> [[(param_name param_type)]] IS <regular select statement>. Cursors are associated with every SQL DML statement processed by PL/SQL. All cursor attributes apply. Cursor FOR loops (CFL) are similar to Numeric For Loops(NFL). Syntax : OPEN <cursor_name>. Multiple row SELECT statements & Implicit i. Syntax : FOR <record_name> IN <cursor_name> LOOP --statements to be repeated go here END LOOP. NFL index takes on each value in the range. NFL specify an integer range.e. Record_name is implicitly declared as record_name cursor_name%ROWTYPE When a CFL is initiated. For each row that satisfies the query associated with the cursor. Syntax : CLOSE <cursor_name> Explicit Cursor Attributes are %NOTFOUND. The cursor must be declared with a FOR UPDATE OF clause. UPDATE. Reference the current cursor row with the WHERE CURRENT OF statement.INTO statements. %FOUND. Exception Handlers : In PL/SQL. Syntax : FETCH <cursor_name> INTO <var1. an implicit OPEN cursor_name is initiated. When an exception is . Close the cursor to free up resources... Syntax : WHERE CURRENT OF <cursor_name> Reference Cursors FOR Loops to specify a sequence of statements to be repeated once for each row that is returned by the cursor with the Cursor FOR Loop. DELETE & SELECT. Syntax : DECLARE CURSOR <cursor_name> IS <regular_select_statement>. Cursor has to be explicitly defined when a query returns multiple rows to process beyond the first row returned by the query & to keep track of which row is currently being processed.. var2. Implicit cursor is called the SQL cursor-it stores info concerning the processing of the last SQL statement not associated with an explicit cursor. an implicit CLOSE cursor_name is executed and the loop is exited.e. Cursors must be closed before they can be reopened. CFL record takes on vales of each row. OPEN.. an implicit FETCH is executed into the components of record_name. INSERT. Open the cursor to process the SELECT statement and store the returned rows in the cursor. When there are no more rows left to FETCH. Fetch data from the cursor and store it in specified variables.

SQLCODE & SQLERRM cannot be used within a SQL statement. name an ORACLE error so that a handler can be provided specifically for that error.invalid_cursor. Blocks describes each section or subsection of the form and serves as the basis of default database interaction.too_many_rows. If no exception is active SQLCODE = 0 & SQLERRM = 'normal. All fields have to be displayed on some page. User-Defined Exceptions must be declared & must be RAISEd explicitly. Exception-Init : Exceptions may only be handled by name not ORACLE error number.e. Eg. SQLCODE & SQLERRM provides info on the exception currently being handled & especially useful in the OTHERS handler. or 1 if it was a userdefined exception.string. Pop-Up Pages Non-Pop-Up Pages Appear in windows Overlay the entire screen Created by selecting pop-up page attribute Default type of page Can be larger or smaller than the screen Can only be the size of the screen Can appear anywhere on the screen Must be positioned at the upper left hand corner of the screen Can be a section (view) of a page Must fill the entire text region Many pages can appear on the screen at one time Only one non-pop-up page can appear on the screen Page Size specifies the size of the pop-up page.conversion or constraint error occurred. Fields represents columns or data entry areas and describes how data should be displayed and validated and how an operator should interact with the data while it is entered. An exception handler is a sequence of statements to be processed when a certain exception occurs. Pages is a collection of display info such as constant texts and graphics.raised. the search for a handler for the new exception begins in the enclosing block of the current block. arithmetic.no_data_found. successful completion'. how much of the . <ORACLE_error_number>). When an exception handler is complete.cursor_already_open etc. SQLERRM returns the ORACLE error message associated with the current value of SQLCODE & can also use any ORACLE error number as an argument. SQLCODE returns the ORACLE error number of the exception.numeric. So. Only one handler per block may be active at a time & If an exception is raised in a handler.value_errori. zero_divide. Two types are Predefined Internal Exceptions which corresponds to approximately 20 common ORACLE errors & Raised automatically by PL/SQL in response to an ORACLE error. Syntax : PRAGMA EXCEPTION_INIT (<user_defined_exception_name>.e. SQL*FORMS : Form is a tool for developing and executing forms based interactive applications that can access info from ORACLE database. View Size specifies the size of the view that appears on the screen i. processing of the block terminates. dup_val_on_index. processing jumps to the exception handlers.

Set up form default. the part of the pop-up page that is shown. It contains a value for each row which uniquely identifies that row.e. the X & Y coordinates of the page define the upper left corner of the view. i. View Page specifies the initial location of the view on the page. Key Fn : Attach key-Fn triggers to any one of ten key sequences that normally do not perform any SQL*Form operations. run Oracle*Terminal to map the keys to the appropriate functions. Types of Triggers : Most key triggers are function key triggers. Validation Triggers : Validation is an internal process by which Forms determines whether the data in an object is correct. performs calculations. add constant text and graphic elements. amount to data to be entered before form initiates validation. Validation triggers fire when validation is performed.pop-up is shown. Print messages. Keep a running total & Perform calculations. Function Key Triggers : Fires when a particular Forms function key is pressed. Considered as key trigger because its action is similar to an operator pressing a startup function key. Send a message to the operator as soon as the form comes up on the screen & Perform an automatic query upon entering the form. the X and Y coordinates of the screen define the upper left corner of the view. Row Id is a column created by ORACLE when a table is created. Key Others : Associate a key-others trigger with all keys that can have key triggers associated with them but are not currently defined by a function key triggers. Trigger is a piece of PL/SQL code that is executed or triggered by an event while the form is running. record or field. It helps forms to manage transactions and is used to update a table that is not associated with a block in the form. Before attaching key triggers to these keys. Perform multiple or complex functions & Disable function keys. Derive a complex default value. Screen Painter is used to edit screen images. outside the form or undefined. When a block is created. control the flow of application & replace or enhance default processing. Replace or supplement default function key functionality. block. forms add a nondisplayable. Validation Unit is a characteristic which determines the max. Navigational Triggers : Fires when entering or leaving a form. record. Zoom In : Displays the form or spread table for the objects that are owned by the current object. they have a one-to-one relationship with specific keys. It corresponds to a unit of data which can be field. Cursor is an instance of field. Zoom Out : Displays the form or spread table for the object that owns the current object. Forms uses row id to determine what rows to fetch from db or reserve in db and what rows to update or delete during posting. Trigger Point is a temporal space in an event with which a specific trigger type is associated. Restrict access to a form. Navigation is performed to move the cursor from one location to another. block or form. It validates data entry. View Location specifies where on the screen the view of the pop-up page appears. Validation occurs when the operator has entered or changed data in an object . Key Startup : Fires at the end of the entering the form event. non-up dateable field named row id.

Trap & recover from an error. SQL form runs the called form with the same options as the parent form. Post-Query fires once for every record fetched by the query. Sets up special locking requirements. Transactional Triggers : Fires during commit processing . Call_Form runs an indicated form while keeping the parent form active. If it does. Restricted Packaged Procedure is any packaged procedure that affects the basic functions of SQL forms. Validation or Navigation triggers cannot contain Restricted Packaged Procedures. This behavior is analogous to the user pressing the corresponding function key. and when counting query hits.and then tries to leave the object. Validation does not occur when the operator is in Enter Query mode. give the critical field the primary key characteristics and give the block the primary key characteristics. Do_Key packaged procedure executes the key trigger that corresponds to the specified packaged procedure. On-Error & On-Message trigger fires when Forms displays an error or an informative message respectively. user named triggers that are invoked by key triggers & On-New-Field-Instance trigger. Key-Duprec trigger copies the values of each field in the record with the next lower sequence number to the corresponding fields in the current record. Name_In packaged function returns the contents of the variable to which you apply it. Error & Message Handling Triggers : Write these triggers to replace the default SQL*Forms error or informative messages. an error occurs and calls the Duplicate_Record packaged procedure. Also use Name_In to return number and dates as character strings and then convert those strings to the appropriate data types. Fires as last part of field validation. Update an audit trial. processing resumes in parent form at the point where the call occurred. Calculates & Validates a field value. The current record must not correspond already to a row in the database.an event that makes the data in the database identical to the data in the form. If no such trigger executes. then the specified packaged procedure executes. To ensure that an inserted record or updated record does not duplicate an existing record. Pre-Query fires once before block is queried. Changes. Packaged Procedure is a predefined piece of PL/SQL procedure that executes a SQL*Forms function. Syntax : DO-KEY (package procedure name) Packaged Function is a predefined piece of PL/SQL function that evaluates some aspect of the current SQL*Forms session and returns a value. Call packaged procedure runs an indicated form while keeping the parent form active. It is used only in Key triggers. Query Triggers : Fires when entering & executing a query. Replace a standard message with a custom message. New_Form exits the current form and enters the indicated form. Anonymous Block is a PL/SQL block without a name and this block can be executed . Prevent Insert/Update/Delete actions & Modify Insert/Update/Delete actions. Open_Form opens an indicated form to create multiple form application called form is modal. Primary Key Field Attributes indicates that the field is a unique characteristics for a record or part of unique key. When called form is exited thro' the EXIT function or as a result of navigational failure. Returned value is in the form of character string. Defined only at the block or form level.

Last_Record. pass data to forms from OS files. it should be initialized thro' a trigger or it will be initialized first time you assign a value to it. Delete any variable with ERASE package procedure. Allows to write a subroutine that contains call to Oracle database but cannot access SQL*Forms variable & fields.Last_Query.Record_Status. It can be called from other procedures & triggers.Cursor_Block. Able to reference the value of system variable in order to control the way an application behaves. These procedures can use any command that a trigger can use. Used to store data values that should not be stored inside a block or you want to share between forms during form session. Oracle Call Interface User Exits : Incorporates Oracle Call Interface. Cannot access Oracle database & SQL*Forms variable & fields.Cursor_Value. It returns a integer value which indicates Success. NonOracle user exit might be entirely written using C.from the trigger in which it is defined.variable_name Oracle Naming Conventions. Stores a character string of upto 255 characters long. Syntax : GLOBAL. Can be called by another procedure or trigger & Can pass parameters. The full PL/SQL syntax. Value of system variable corresponds to the current form. Global Variable is a forms variable that is active in any trigger within a form and is active through out the session.Record_Status. FORTRAN. Before a variable is active.Trigger_Field & Trigger_Record. With embedded SQL commands. just as subroutines do in 3GL. Global variable declared in one form can be used in called form. manipulate long raw data. Form Level Procedure are callable PL/SQL blocks. Leads to more efficient & consistent applications. System Variable is a SQL*Forms variable to keep track of some internal SQL*Forms state. User Exits is a subroutine which is written and linked into SQL forms executable files. Host language are ADA. They cannot contain anonymous block.Current_Value.Message_Level. Non-Oracle User Exits : Does not incorporate either precompiler interface or OCI. Also access SQL*Forms variables & fields. PASCAL & PL/1. PL/SQL Variable is a local variable that is active only within the anonymous block or form level procedure in which it has been declared. Because of this feature. They can also take arguments and return values. Cursor_Record. It has to be included if it has Declaration section. Failure or Fatal Error.Cursor_Field. Features of Oracle 7 : . COBOL.T rigger_Block. Current_Block. Allow to write a subroutine using one of the following host language & embedded SQL commands. Types : Oracle PreCompiler User Exits : Incorporates Oracle Precompiler interface. Advantages are Reduce the amount of logic the designer needs to write for any task.Current_Field.Current_Form. It does not require BEGIN & END keywords. including declarations and keywords BEGIN & END are required.Form_Status. It is a link to pass data from forms to host language programs and receives the result. an Oracle Precompiler user exit can access oracle databases. C. support PL/SQL blocks and control real time devices such as printer or robot. It performs complex data manipulation. most of user exits is Oracle Precompiler user exits. They are Block_Status.

This ensures consistent behavior among applications and reduce development & testing time. stored procedures. and in addition to. other benefits are Improve Data Security and Integrity : Control indirect access to db objects from non-privileged users with security privileges. Documented from the Oracle Forms Appln. Improve Performance : Avoid reparsing for multiple users by exploiting shared SQL. by means of form-level security and the Copy/Reference facility. May reference db stored procedures only. Oracle Forms procedures. Stored Package is a group of related Stored Procedures. Modify one routine to affect multiple applications. only. developer organizational benefits. Improve Maintenance : Modify routines online without interfering with other users. Complex business rules that cannot be enforced using declarative integrity constraints can be enforced using triggers. and in addition to. related actions are . Invoked independently of. May reference Oracle Forms procedures in addition to db stored procedures. Guidelines : Use triggers to guarantee that when a specific operation is performed. Made available to applns. development. Functions & other package constructs stored together as a unit in the db. Difference between Stored Procedure and Oracle Forms Procedure : Stored Procedure Oracle Forms Procedure Stored within the database. Documented within the data dictionary. Centralizing the application logic and can be accessed from any Oracle tools. applns. Ensure that related actions are performed together. Avoid PL/SQL parsing at runtime by parsing at compile time. Made available to Oracle forms appln. or not at all. Stored Package provides the db administrator or appln. by means of db security. Invoked independently of. Reduce the number of calls to the database and decrease network traffic by bundling commands.Stored Procedures is commonly used procedures can be written once in PL/SQL and stored in the database for repeated use by applications. Benefit from Stored Procedures & Functions : In addition to modularizing appln. Executed from an Oracle Forms appln. QEP for Stored Procedures is generated at compile time. Share sql to avoid multiple cursors for different applns. Update or Delete statement is issued against the associated table. Stored within the Oracle Forms Appln. It is similar to procedures that are stored in the databases and implicitly fired when a table is modified. Modify one routine to eliminate duplicate testing. Executed from any db tool or appln. Conserve Memory : Store a single copy of code in the db to avoid multiple copies of the same code for diff. Database Triggers is a stored procedure that is implicitly fired when an Insert. they also offer increased functionality and db perfomance. by funneling activity for related tables thro?? a single path.

performed. simple spreadsheet-style screens. Functions & Packages are available in 7. Triggers will be compiled when it is fired. Check. Selective availability of privileges & Application awareness. ANSI standard SQL used to retrieve records in the report. Ability to customize report format. Reports can be viewed immediately on-line for corrections. The properties are Reduced granting of privileges. Dynamic privilege management. Primary. Declarative Referential Integrity establishes precise rules for use of columns that are common across tables. Do not define triggers to duplicate the functionality & do not create Recursive triggers. It uses statistics about tables. Schemas is a collection of objects i. This allows even inexperienced users to submit complex queries without having to worry about the performance. SQL*REPORTWriter : Features : Application development tool for designing & executing reports. Multi threaded architecture several user process for a single server process and the user process can be configured.e. Text processing and highlighting features. include the code in the Stored Procedure. Cost Based Optimizer is available. Foreign. Default & Unique constraints. provide hints to it to allow it to select the proper execution path. along with info about the available indexes to select an execution plan for SQL statements. If the trigger has to be execute many lines of code. Calculations & summaries. the CPU processing time. limit the size of triggers. Built into db software and enforced by default. tables. Mutating Error in DB triggers is when a select statement within the scope of the trigger selects rows corresponding to the trigger table itself. Database Triggers. Differences between Oracle 6. Use DB triggers for centralized global operations that should be fired for triggering statement regardless of which user or database application issued the statement. Stored Procedures. views etc. Report management facility for easy report maintenance & Integration . Default values for report format. Roles : ORACLE provides for easy & controlled privilege management thro?? the use of Roles.e. Not Null. Roles are named groups of related privileges that are granted to users or other roles. the allowed amount of idle time for the user??s session & the allowed amount of connect time for the user??s session. Parameters provide runtime flexibility. Compilation of triggers smaller in size will have insignificant effect on system performance. Profiles is assigned to each user that specifies limitations on several system resources available to the user i.0 : Only not null was implemented in 6 where as in 7 all the integrity constraints are implemented i.0 & 7.e. Generate reports interactively or in a production environment. Table Replication is a snapshot of a table. the number of concurrent sessions the user can establish. date & number formats. the amount of l ogical I/O. and schema exists for each oracle user. Menu-driven. If we know the better execution path. So. Complex data relationships. It can be solved by placing the select statement in a stored procedure and calling the stored procedure from the scope of the trigger.

No limit to the number of queries in a report. Matrix queries i. They are DESTYPE-Device type i. Related queries form a hierarchy. group & summary setting screens are reflected on all associated text objects that have not been edited. Changes made on field. security and history of the report. On-line report can be viewed either in Browse i. Parameters : Parameters contain default values that can be modified for each report or with each interactive run. Groups : A group is a set of one or more columns. Queries can be unrelated i. Summaries may be referenced in queries. Group settings provide format control. Two parents/One child queries. including fields derived from user exits & system variables. Customize text. File name. Summary settings provide format control. Can create new groups (break groups) that group records by the distinct values of a column or set of columns.used to cluster columns returned from the query. i.e Master/Master report. No limit to the level of relationships (nesting) in queries.e. Add page numbering.retrieves data from the database. Parameters may be placed in queries. Summary . printer. File. group & summary settings. COPIES-Number of copies to print (used when sending the report to the printer). Break Groups : A break is a set of groups generated from one query. Group . Report . DECIMAL-Symbol to use for the period. or Oracle*Mail). Queries : Every report must contain atleast one query. System variables (page number. Multiple summaries may be computed on any field.e.e.containers for data values. User exits & DML statements. DESNAME-Destination of report i. user exits & text. Can create relationships between queries. stream. Sysout & Mail. Parameters . Text object changes are not dynamically reflected in field. THOUSANDS-Symbol to use for the comma. Page by page or Window i. Fields . running totals & other standard functions on field values. number of pages. Parameters may be selected for appearance or may be changed at runtime on the run-time parameter form.).dimensions.e. Printer name & Oracle*Mail user id or user list. width & data type applying to a report may be changed on the parameter screen. Text Objects : Text objects represent the physical layout of the report. CURRENCY-Symbols to use for the dollar sign.e. grand totals. Text objects are used to manipulate positions of fields & summaries. date etc.e. Components : Query . . Each query automatically generates one group consisting of all columns in the query. Every report must contain at least one group. Printer. DESFORMAT-Printer format (used when sending the report to a file. Parameters may be entered from the command line with the sqlrep or runrep command. Summaries : Summaries calculate subtotals.with Oracle application tools.entered at run-time to control production.calculated summary function on a field. data values. Query Parameters can be created to specify data for the report at run-time. in which child query is executed once for each record returned by the parent. System Parameters provide production control. All summaries are manually created. Text . Screen. scrolls horizontally and vertically through a page.physical areas of report. Field : A field is a container for values derived from columns or calculated column values in the SELECT statement. Master/Detail (parent/child) queries. The default parameter value. Computed fields created by user. Query retrieves data for the report from database tables or views.

Matrix Report require exactly three queries: two parents & one child. Program . FIPS flagger helps to develop portable applications & to identify nonconforming SQL elements.Program used to design reports. or specify the value at run-time.SQL*ReportWriter V1. To create a bind parameter Include the parameter in the SELECT statement. Across for one group. Host variable is a scalar or array variable declared in the host language & shared with Oracle. Use the default value. Embedded SQL Statements are divided into Executable Declarative Call to runtime library SQLLIB To declare Oracle objects. LOADREP . precede the parameter name with &. GROUP BY.1 conversion program. linked & executed in the normal way. TERMDEF . Enter the parameter name. PRO*C : Oracle Precompiler is a programming tool that allows to embed SQL statements in a high level source program. Lexical Parameter : Insert a SQL clause when the query is run. Precompiler accepts the source program as input. easy to use interface lets your application access Oracle directly. Summaries are placed by default in the group subfoots of the print group. Each group must be identified as a matrix group. MOVEREP . PRINTDEF . begin with EXEC SQL EXECUTE & END EXEC. Enter the default value (SQL clause) on the Parameter screen. precede the name with a colon. For PL/SQL block. Matrix Reports : A matrix report has the following characteristics : Matrix report is a grid containing three sets of data. Each query has only one group. Host Variables are key to communication between Oracle and the program. Print direction is Down for one group. Include the parameter in the SELECT statement.Bind Parameter binds in a specific value when the query is run. HAVING. translates the embedded SQL statements into standard Oracle runtime library calls & generates a modified source program that can be compiled. Help to fine tune the application & saves time because the precompiler & not the user translates each embedded SQL statement into several native language Oracle calls. CONNECT WITH. Why use Precompiler : It allows to pack the power & flexibility of SQL into application programs. data type & width.Creates an ASCII file containing report definitions. Placed wherever host language host language executable statements can be placed. Connect to Oracle.0 to V1. May be loaded on systems without SQLREP to produce reports. communication areas & SQL variables. GENREP Generates a runfile for a report that has not been executed via the Action menu.Loads report definitions into an ORACLE database. A convenient. Specify a default value on the parameter screen. May be used to replace WHERE. to control access to data & to process transactions.Runs the reports (stored as runfiles) & creates final output. For SQL statements. DUMPREP . to define query & manipulate data. Placed wherever host language declarations can be placed. begin with keywords EXEC SQL & end with SQL statement terminator. or enter the value at run-time. SQL*ReportWriter Utilities : SQLREP . ORDER BY. To create a lexical parameter Create a new record on the parameter screen. START WITH clauses.Creates printer definitions. RUNREP .Created terminal definitions. Oracle Precompilers are full featured tools that support professional approach to embedded SQL programming. and Cross tab for the third (the group of the child query).

Whenever. use C pseudo type VARCHAR instead of standard C character arrays because Oracle does not null terminate strings. Oracle Precompiler offers two error handling mechanisms : SQLCA is a data structure copied into your host program. the db schema??s objects (i. the variable are prefixed with a colon. expands the Varchar declaration into a structure with array & length number. Tablespaces : A db is divided into logical storage units called TS. Oracle uses o/p host variable to pass data & status info to the program.e. Privilege Auditing is the auditing of the use of powerful system privileges. Segments. ORACA is a data structure copied into your host program to handle ORACLE specific communications. SQLDA is a structure copied into your host program to process dynamic SQL statements that contains unknown number of select-list items or place holders for bind variables. Audit Trial : Results of audited operations are stored in a table in data dictionary. sequences. PL/SQL blocks can be embedded in PRO*C. Pointers can be used in PRO*C but it can't be used in SQL statements. we use ORACA. It defines program variables used by Oracle to pass run time status info to the program. SQLCA is used to provide diagnostic checking & event handling. Physical DB Structure : ORACLE db consists of atleast one or more data files. views. When we need more run time info than SQLCA provides. an area of memory reserved for memory management. Check to see if a Delete was successful & how many rows were deleted. sp). VARCHAR implementation in C after Precompilation : For most applications. Logical DB Structure : ORACLE db consists of one or more tablespaces. Tablespaces. Data Type Equivalencing is conversion from Oracle to C data type. In SQL statements. After precompilation. Actions include continuing with the next statement. Indicator Variables is an integer variable that indicates the value or condition of its host variable. Use indicator variable to assign nulls to i/p host variable & to detect nulls or truncated values in o/p host variables. The files of a db provide the actual physical storage for db info. Precompiling adds a step to the traditional development process. Combined size of the data file is the total storage capacity of . clusters. Object Auditing is the auditing of access to specific schema objects. indexes. branching to a labeled statement. calling a subroutine. we can specify actions to be taken automatically when oracle detects an error or warning condition. TS is used to group related logical structures together. tables. ORACA helps to monitor PRO*C programs use of ORACLE resources such as SQL statement executor & the cursor cache. SQL*DBA : Auditing : To aid in the investigation of suspicious db use. Extents dictate how physical space of a db is used. Each db is logically divided into one or more TS.uses i/p host variable to pass data to Oracle. Statement Auditing is the auditing of specific SQL statements. Stored Procedures can be called from PRO*C. E. One or more data files are explicitly created for each TS to physically store the data of all logical structures in a TS. two or more redo log files & one or more control files.g. but it lets to write very flexible applications.

Because extents are allocated as needed. a data file cannot change in size. clusters & db links. All rows with the same hash key value are stored together on disk. synonyms. ORACLE allocates another extent for that segment as needed. Index Segment : Each index has a index segment that stores all of its data. An extent is a specific number of contiguous data blocks. segments extents are returned to the system for future use. The resulting hash key value points directly to the area on disk that stores the specified rows. One or more data files form a logical unit of db storage called a tablespace. Database Links is a name object that describes a path from one db to another. used to store a specific type of info. ORACLE allocates space for all types of segments in extents. For such queries. views. One data block corresponds to a specific number of bytes of physical db space on a disk. indexes. When the statement finishes execution. stored procedures. A row is stored in a hash cluster based on the result of applying a hash function to the row??s cluster key value. The primary function is to record all changes made to data. when the existing extents of a segment are full. Therefore. an ORACLE db??s data is stored in data blocks. It contains all db data. Should a failure prevent modified data from being . A db uses & allocates free db space in ORACLE data blocks. Online & Offline TS : A TS can be online (accessible) or offline (not accessible). A data file can be associated with only one db. Temporary Segments are created by ORACLE when a SQL statement needs a temporary work area to complete execution. Index Clusters are group of one or more tables physically stored together because they share common columns & are often used together. A data block size is specified when the db is created. Once created. Redo Log Files : ORACLE db should have atleast two or more redo log files. All the table??s data is stored in the extents of its data segment. Objects in same schema can be in diff. Hash Clusters : Also cluster table data in a manner similar to normal cluster. A segment is a set of extents allocated for a certain logical structure. Schema objects includes tables. Segments is the next level of logical db storage above extent. the temp. A TS can be offline to make portion of the db unavailable while allowing normal access for the remainder of the db to make administrative tasks easier. Extents is the next level of logical db space. the extents of a segment may or may not be contiguous on disk. obtained in a single allocation. Hash clusters are better than using indexed table or indexed clusters when a table is queried with equality queries. Rollback Segment : One or more rollback segments are created by the db administrator for a db to temporarily store undo info. Each cluster has a data segment. ts & vice versa. Schema Objects are the logical structures that directly refer to the db??s data.TS. The related columns of the tables in a cluster is called cluster key. so disk access time improves. No relation between ts & schema. Data Blocks : At the finest level of granularity. Different types are Data Segment : Each non clustered table has a data segment. DB links are implicitly used when a reference is made to a global object name in a distributed db. Schema is a collection of objects. the specified cluster key is hashed. Data Files : ORACLE db should have atleast one or more physical data files. Combined storage capacity of the TS??s is the total storage capacity of the db. The set of redo log files for a db is collectively known as the db??s redo log. sequences. The data in a cluster key of an index cluster is store only once for multiple tables.

These buffers can contain modified data that has not been permanently written to the disk. ORACLE allows a mirrored redo log so that two or more copies of the redo log can be maintained in diff. A control file records the physical structure of the db. Because the most recently used is kept in memory. Program or Process Global Area (PGA) & Context Areas. SGA is a shared memory region allocated by ORACLE that contain data & control info for one Oracle db instance. DB??s control file is also used if db recovery is necessary. Redo Log files are critical in protecting a db against failures. The dd is critical to the operation of the db. the changes can be obtained from redo log & work is never lost. (c) A record of each change made to Data & Rollback block is entered in a Redo Log Buffer. Data Dictionary : ORACLE db should have a data dictionary. Redo Log Buffer of the SGA stores redo entries . During the course of transaction.System Global Area (SGA). its control file is used to identify the db & the redo log files that must be opened for db operation to proceed. DB Buffers Cache of the SGA store the most recently used blocks of db data. to store as much data in memory as possible & minimize disk I/O. The . verify and conduct ongoing work. It consists of two blocks Data Segment Block & Rollback Segment Block. names & locations of db??s data & redo log files & time stamp of db creation. ORACLE has three basic memory structures to function . To protect against a failure involving the redo log itself. info about integrity constraints defined for tables in the db & how much space is allocated for a schema object and how much of it is being used. (b) Info that can be used to undo the transaction is stored in a Rollback block in the db buffer pool. changes to data are not written to the database file but these steps take place (a) Each statement executed in the transaction modifies the appropriate data segment block in the DB pool buffer. which relies on the dd to record. It is written to only by RDBMS processes.permanently written to the data files. It stores info about physical & logical structure of db. SGA contains Database Buffers. When transaction is committed. Control Files : ORACLE db should have atleast one control file. For optimal performance. Redo Log Buffers & Shared Pool. The data dictionary of a ORACLE DB is a set of tables & views that are used as a read only reference about the db. Data in SGA is shared among all users currently connected to the database. less disk I/O is necessary and performance is increased. the set of db buffers in an instance is the db buffer cache. disks.a lot of changes made to the db. Control files can be mirrored for protection of control files. The use of Control Files : Every time an instance of an ORACLE db is started. These areas have fixed sizes are created at the instance startup. The use of Redo Log Files : The info in redo log file is used only to recovered the db from a system or media failure that prevents db data from being written to a db??s data files. Most Oracle servers support only one Instance per Server. Rolling Forward is the process of applying the redo log during a recovery operation. It also stored the info about valid users of an ORACLE db. DD is created when a db is created. SGA & Oracle Background processes make up an Instance. It contains db name. info in the redo log buffer is written to Redo Log File which are used in Recovery operations. the entire SGA should be as large as possible. SGA is allocated when an instance starts and deallocated when the instance is shut down.

It also manages the communication with the server process thro?? program interface. . A shared SQL area is required to process every unique SQL statement submitted to a db. Shared Pool is a portion of the SGA that contains shared memory constructs such as Shared SQL areas. A multi threaded config. BG processes are given below. A process normally has its own memory area in which it runs. Log Writer (LGWR) processes writes redo log entries to disk when transaction is committed & the log buffer fills. Processes is a mechanism in an OS that can execute a series of steps. types of Oracle processes are Server Processes : ORACLE creates server processes to handle requests from connected user processes. DBWR writes only when more data needs to be read into the SGA and too few db buffers free. A server process is in charge of communicating with the user process and interacting with ORACLE to carry out requests of the associated user process. It contains info such as the parse tree and execution plan for the corresponding statement. program (Pro*C) or an ORACLE tool (SQL*DBA). Background Process : ORACLE creates a set of background processes for each instance. a server process handles requests for a single user process. PGA is a writeable. They asynchronously perform I/O & monitor other ORACLE processes to provide increased parallelism for better performance & reliability. DBWR is optimized to minimize disk writes. allows many user process to share a small number of server processes. The least recently used data is written to the data files first. minimizing the number of server processes and maximizing the utilization of available system resources & the user and server processes should be separate.redo entries stored in the redo log buffers are written to an online redo log file. Some OS uses the terms job or tasks. PGA is allocated on the server for each client that connects to the server. that issue the same statement. It size is static. It is exclusive to the user processes & is read & written only by Oracle processes acting on behalf of the user. which is used if db recovery is necessary. Redo Log data is generated in the redo log buffer of the SGA. It has two general type of processes User (Client) Processes is created and maintained to execute the software code of an appln. Database Writer (DBWR) processes writes modified blocks from the database buffer cache to the database files. PGA is a memory buffer that contains data & control info for a single client process. non-shared memory area. Virtual Memory is an OS feature that offers more apparent memory than is provided by real memory. They consolidate functions that would otherwise handled by multiple ORACLE programs running for each user process. ORACLE Processes are called by other processes to perform functions on behalf of the invoking process. Diff. PGA includes Context Areas. leaving more shared memory for other uses. Context Areas is a memory buffer of the Server that contains the current status of one SQL statement. Simulates memory by swapping RAM & Secondary storage. Blocks are written in proper order to maintain database integrity. It contains info about connection & maintains info so that user can communicate with oracle. A single shared SQL areas is used by multiple applns. Can be configured to vary the number of user processes per server process In a dedicated server config.

present only when a multi-threaded server configuration is used. The combination of these processes & memory buffers is an Instance. Parallel Server. ORACLE with the Parallel Server option can take advantage of such architecture by running multiple instances that share a single physical db. Archive (ARCH) processes copies on-line redo log files to on-line archival storage when they are full. LGWR assumes the responsibilities of CKPT. Dispatcher (Dnnn) : Dispactchers are optional background processes. loosely coupled processors allow multiple computers to share access of data. CKPT is optional. SMON also coalesces free extents within the db. These transactions are eventually recovered by SMON when the tb or file is brought back online. In appropriate applications. this event is called a checkpoint. In a multiple instance system i. Example of how ORACLE works : The following illustrates an configuration where the user and the associated server process are on separate machines. Each dispatcher process is responsible for routing requests from connected user processes to available shared server processes and returning the responses back to the appropriate user processes.e. it starts a Shadow process that performs all further server communication with a client. all modified db buffers in the SGA are written to the data files by DBWR. When it detects. ORACLE Parallel Server allows access to a single db by the users on multiple machines with increased performance. ARCH is active only when a db??s redo log is used in ARCHIVELOG mode. an SGA is allocated & five background processes are started. the local RECO attempts to connect to remote dbs and automatically complete the commit or rollback of the local portion of any pending distributed transactions. if CKPT is not present. SQL*Net is ORACLE??s interface to standard communications protocols that allows for the proper transmission of data between computers. The checkpoint process is responsible for signaling DBWR at checkpoints and updating all data & control files of the db to indicate the most recent checkpoint. At least one dispatcher process is created for every communication protocol in use. Process Monitor (PMON) processes perform recovery when a user process fails. PMON is responsible for cleaning up the cache and freeing resources that the process was using. Lock (LCKn) : Up to ten lock processes are used for inter-instance locking when the ORACLE parallel server is used.Checkpoint (CKPT) : At specific times. software or peripheral devices. to make free space contiguous and easier to allocate. Network Listener (NLSN) process listens to network for connection requests made to server by client applications. Recoverer (RECO) : The recoverer is used to resolve distributed transactions that are pending due to a network or system failure in a distributed db. PMON also checks on dispatcher and server processes and restarts them if they have failed. Oracle Instance : Every time a database is started on a server. SMON of one instance can also perform instance recovery for other instances that have failed. SMON also cleans up temporary segments that are no longer in use & recovers dead transactions skipped during crash & instance recovery because of file read or offline errors. System Monitor (SMON) performs instance recover at instance startup. .e. ORACLE Parallel Server : Multiple Instance Systems : Some hardware architectures i. At timed intervals.

Reduces the processing load on a single processor by allowing different processors to concentrate on a subset of related tasks. the other background processes run.g.e. In addition. if not. . Throughout this entire procedure. 4. the server process send a message across the network to the appln. 8. as though each db was a non-networked db. It enforces Mandatory Access Control (MAC) which is mean of restricting access to info based on labels. an appropriate error message is transmitted. The user creates a SQL statement and commits the transaction. Distributed db allows increased access to a large amount of data across a nw. Site Autonomy i. the LGWR process immediately records the transaction in the online redo log file. Distributed Data Manipulation : To query a table named emp in the remote db SALES select * from emp@sales. thus improving the performance. 6. A computer used to run an appln.1. 9.e. E. It is designed to provide high level of secure data management capabilities required by organizations processing sensitive or classified info. An instance is currently running on a computer that is executing ORACLE i. The db to which a user is directly connected is known as local db. i. 3. The server process retrieves any necessary data values from the actual data file or those stored in SGA. it must also provide the ability to hide the location of the data (Location Transparency) & hide the complexity of accessing it across the nw. changes a name in a row of a table. An ORACLE db system can easily take advantage of the distributed processing by using its client server architecture. client ws runs the appln.e. a new shared SQL area is allocated for the statement so that it can be parsed and processed. driver. Distributed Processing uses more than one processor to divide the processing for a set of related jobs. The server is running proper SQL*Net driver & the server detects the connection request from the appln. multilevel secure DBMS product. If a shared SQL area is found. If it is not successful. Benefit is data of physically separate db??s can be logically combined & potentially made accessible to all users on a nw. The server process receives the statement and checks the shared pool for any shared SQL area that contains an identical SQL statement. the db server manages other users transactions and prevents contention between transaction that request the same data. the server process checks the user??s access privileges to the requested data and the previously existing shared SQL is used to process the statement. Any additional db??s accessed are called remote db. The server process modifies data in the SGA. 2. 5. Trusted ORACLE : is ORACLE corp. Because the transaction committed. and creates a (dedicated) server process on behalf of the user process. If the transaction is successful. DB Server. The client attempts to establish a connection to the server using the proper SQL*Net. Distributed Databases is a network of db??s managed by multiple db servers that appears to a user as a single logical db. watching for conditions that require intervention. in a user process. The data of all db??s in the distributed db can be simultaneously accessed and modified. 7. The DBWR process writes modified blocks permanently to disk when doing so is efficient. each db participating in a distributed db is administered separately & independently from the other db??s.

Execution plans with greater costs take more time to execute than those with smaller costs. Can be queried but not updated. Operation of lower rank executes faster than those associated with constructs with higher rank. even if there is a failure). Consists of two phases Prepare Phase : The global coordinator (initiating node) asks participants to prepare (to promise to commit or rollback the transaction. These statistics are generated using the ANALYZE command. columns and indexes. if all participants cannot prepare. Statistics used for the Cost based approach : This approach uses statistics to estimate the cost of each execution plan. Optimization is to choose the most efficient way to execute a SQL statement. The optimizer calculates the cost based on the estimated computer resources including but not limited to I/O. this approach uses the operation with the lower rank. db does not need to send info across a nw repeatedly. The cost is an estimated value proportional to the expected elapsed time needed to execute the statement using the execution plan. Goal of the Cost based Approach is the best throughput or minimal elapsed time necessary to process all rows accessed by the statement. and memory are required to execute a SQL statement using a particular . the coordinator asks all nodes to commit the transaction. ORACLE provides automatic method for table replication & update called Snapshots. Using these statistics. If there is more than one way to execute an SQL statement. thus helping to maximize the performance of the db appln.Two Phase Commit mechanism guarantees that all db servers participating in a distributed transaction either all commit or all roll back the statements in the transaction. By having read-only copies of heavily accessed data on several nodes. The optimizer compares the cost of the execution plans and chooses one with the smaller cost. Snapshots are read-only copies of a master table located on a remote node. Execution Plan : To execute a DML statement. the optimizer estimates how much I/O. Explain Plan : Examine the execution plan chosen by the optimizer for a SQL statement by using this command. Table Replication : Distributed db systems often locally replicate remote tables that are frequently queried by local users.. clusters and indexes in the data dictionary. This command causes the optimizer to choose the execution plan and then inserts data describing the plan into a db table. CPU time and memory required to execute the statement using the plan. ORACLE may have to physically retrieves rows of data from the db or prepares them in some way for the user issuing the statement. the distd. The optimizer estimates the cost of each execution plan based on data distribution and storage characteristics statistics for the tables. These statistics quantify the data distribution and storage characteristics of tables. Commit Phase : If all participants respond to the coordinator that they are prepared. The combination of the steps the optimizer chooses to execute a statement is called an execution plan. Cost based approach : The optimizer generates a set of potential execution plan for the statement based on its available access paths and hints. the coordinator asks all nodes to roll back the transaction. CPU time. Rule based approach : The optimizer chooses an execution plan based on the access paths available and the ranks of these access paths in table.

Choice of Optimization approaches : Chooses either a rule based or cost based based to optimization.execution plan. b) LogWriter(LGWR) : LogWriter writes the redo log entries to disk. Redo Log data is generated in redo log buffer of SGA. ORACLE Optimizes SQL statements : For any SQL statement processes by ORACLE. The statistics are visible through these tables in the data dictionary. Developer /2000(Form 4. This is one of the most frequently asked question. the optimizer may transform the original statement into an equivalent join statement.They do the house keeping activities for the Oracle and are common in any system.There are basically 9 Processes but in a general system we need to mention the first five background processes. the optimizer chooses which pair of tables is joined first. ALL_TABLES & DBA_TABLES.This is required since the data is not written whenever a transaction is commited. the optimizer chooses one or more of the available access paths to obtain the table??s data.5 and Reports 2. 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 . LGWR writes log entries into a online redo log file. ALL_ INDEXES & DBA_ INDEXES. USER_TAB_COLUMNS. Statement Transformation : For a complex statement. USER_INDEXES. ALL_TAB_COLUMNS & DBA_TAB_COLUMNS. Evaluation of expressions and conditions : The optimizer first evaluates expressions and conditions containing constants as fully as possible.5) Oracle : 1) What are the Back ground processes in Oracle and what are they.This is useful for recovery from system failure d) Process Monitor(PMON) : The Process Monitor peforms process recovery when user Process fails. 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. USER_CLUSTERS & DBA_CLUSTERS. the optimizer performs these tasks. USER_TABLES. the optimizer often merges the views query into the original statement or the original statement into the view??s query and then optimizes the result. Pmon Clears and Frees resources that process was using. Important Questions in Oracle. View Merging : For a SQL statement that access a view. c) System Monitor(SMON) : The System Monitor performs instance recovery at instance startup. Choice of Join Orders : For a join statement that joins more than two tables. and then which table is joined to the result. Choice of Join Operations : For any join statement. e) CheckPoint(CKPT) : At Specified times. Choice of Access Paths : For each table accessed by the statement. As transaction commits and log buffer fills. the optimizer chooses an operation to use to perform the join.

e. 2) How many types of Sql Statements are there in Oracle There are basically 6 types of sql statments.Fetch. h) Database Buffer Cache : Databese Buffer of SGA stores the most recently used blocks of datatbase data. 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.C.They are a) Data Defination Language(DDL) : The DDL statments define and maintain objects and drop objects.e. b) Rollback : A transaction that retracts any of the changes resulting from SQL statements in Transaction. 4) Key Words Used in Oracle 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. 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. execute and close 3) What is a Transaction in Oracle A transaction is a Logical unit of work that compromises one or more SQL Statements executed by a single User. b) Data Manipulation Language(DML) : The DML statments manipulate database data.DML and T.g:: Using the Sql Statements in languages such as 'C'. Oracle uses an implicit cursor statement for Single row query and Uses Explcit cursor for a multi row query. e) Cursor : A cursor is a handle ( name or a pointer) for the memory associated with a specific stament. c) SavePoint : For long transactions that contain many SQL statements.It consists of Database Buffer Cache and Redo log Buffer.e.Set Role e) System Control Statements : Change Properties of Oracle Instance . d) Rolling Forward : Process of applying redo log during recovery is called rolling forward. Savepoints can be used to divide a transactino into smaller points. Open.f) Archieves(ARCH) : The Archiver copies online redo log files to archival storal when they are busy.The set of database buffers in an instance is called Database . intermediate markers or savepoints are declared. g) Program Global Area (PGA) : The PGA is a memory buffer that contains data and control information for server process. A cursor is basically an area allocated by Oracle for executing the Sql Statement.g Alter Statements.g:: Alter System f) Embedded Sql : Incorporate DDL.S in Programming Language. According to ANSI. a transaction begins with first executable statment and ends when it is explicitly commited or rolled back. 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 .

functions.We can have the trigger as Before trigger or After Trigger and at Statement or Row level. 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.delete 3 before . update to. k) Process : A Process is a 'thread of control' or mechansim in Operating System that executes series of steps. 8) What are the Various Master and Detail Relation ships. 7) How many Integrity Rules are there and what are they There are Three Integrity Rules.update . . Procedures do not Return values while Functions return one One Value Packages Provide a method of encapsulating and storing related procedures.The advantage of using the stored procedures is that many users can use the same procedure in compiled and ready to use format. j) 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.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.When there is data in Child Tables the Master tables cannot be deleted. DT are useful for implementing complex business rules which cannot be enforced using the integrity rules. c) Business Integrity Rules : The Third Intigrity rule is about the complex business processes which cannot be implemented by the above 2 rules. Stored Procedures : Stored Procedures are Procedures that are stored in Compiled form in the database. i) Redo log Buffer : Redo log Buffer of SGA stores all the redo log entries. eg. operations insert. 5) What are Procedure. 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.3 Onwards. They are basically used for backup when a database crashes.Buffer Cache. Thus a total of 12 combinations are there and the restriction of usage of 12 triggers has been lifted from Oracle 7. 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.functions and Packages 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. variables and other Package Contents 6) What are Database Triggers and Stored Procedures Database Triggers :: Database Triggers are Procedures that are automatically executed as a result of insert in.

'2'. When too_many_rows b) User Defined Exceptions e. 12) How many types of Exceptions are there There are 2 types of exceptions. Oracle Forms assigns a single cursor for all SQL statements. Oracle Forms assigns seperate cursor only for each query SELECT statement.OPTIMIZER_HINT. Select /*+ First_Rows */ Deptno.This slow downs the processing because for evertime the SQL must be parsed whenver they are executed. e. f45run module = my_firstform userid = scott/tiger optimize_sql = No d) Optimize_Tp : By setting the Optimize_Tp= No.'Second'Null).Dname.'1'. My_exception exception When My_exception then 13) What are the inline and the precompiler directives The inline and precompiler directives detect the values directly 14) 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 15) How many minimum groups are required for a matrix report The minimum number of groups in matrix report are 4 . b) Deffered with Auto Query Oracle Forms defer fetching the detail records until the operator navigates to the detail block. Here the Null is the else statement where null is done . When no_data_found.'FIRST_ROWS').g select DECODE (EMP_CAT.g.9) 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 Record are shown. They are a) System Exceptions e. 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 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: set_item_property('DeptBlock'.Loc. All other SQL statements reuse the cursor.g. f45run module = my_firstform userid = scott/tiger optimize_Tp = No 11) How do u implement the If statement in the Select Statement We can implement the if statement in the select statement by using the Decode statement.'First'.Rowid from dept where (Deptno > 25) c) Optimize_Sql : By setting the Optimize_Sql = No.

We can categorise the properties by setting the visual attributes and then attach the property classes for the objects. Unique key is also useful for identifying the distinct rows in the table.To increase the size of the database to store more . 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.Once the Data file is created the size cannot change. 20) What is concurrency Cuncurrency is allowing simultaneous access of same data by different users.Data Files. unique key and primary key 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. Locks useful for accesing the database are a) Exclusive The exclusive lock is useful for locking the row when an insert. eg. Control Files Table Space : The table space is useful for storing the data in the database. Oracle does implement the OOPS concepts.Parameter File. Data Files : Every Oracle Data Base has one or more physical data files.They store the data for the database. Right to resource Grants are given to the objects so that the object might be accessed accordingly. 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. Views are built using the columns from one or more tables.The grant has to be given by the owner of the object. 22) Table Space.Every datafile is associated with only one database. The Single Table View can be updated but the view with multi table cannot be updated 18) What are the OOPS concepts in Oracle. Right to Connect. 21) Previleges and Grants Previleges are the right to execute a particulare type of SQL statements.This lock should not be applied when we do only select from the row.When a database is created two table spaces are created.update or delete is being done. b) Share lock We can do the table as Share_Lock as many share_locks can be put on the same resource.16) 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 17) What are snap shots and views Snapshots are mirror or replicas of tables. Right to create. The best example is the Property Classes.

:: db_block_buffers = 500 db_name = ORA7 db_domain = u.Data for row is stored in a chain of data blocks . 28) What are mutating tables When a table is in state of transition it is said to be mutating. There are basically 2 phases in a 2 phase commit. Segments : Set of Extents allocated for Extents. This is useful to maintain the integrity of the database so that all the users see the same values. Pctfree 20. 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.s. a) Prepare Phase : Global coordinator asks participants to prepare b) Commit Phase : Commit all participants to coordinator to Prepared. eg :: If a row has been .data we have to add data file.acme lang Control Files : Control files record the physical structure of the data files and redo log files.A parameter file contains the list of instance configuration parameters e. Pctused 40 25) What is Row Chaining The data of a row in a table may not be able to fit the same data block. They contain the Db name. 26) What is a 2 Phase Commit Two Phase commit is used in distributed data base systems. It contains DML statements or Remote Procedural calls that reference a remote object. name and location of dbs. Read only or abort Reply 27) What is the difference between deleting and truncating of tables 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. Similarly Pct Used is used to denote the percentage of the used space that is to be used when creating a table eg. Parameter Files : Parameter file is needed to start an instance.redo log files and time stamp. 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 Pct Free is used to denote the percentage of the free space that is to be left when creating a table. 23) Physical Storage of the Data The finest level of granularity of the data base are the data blocks.g. data files .

With respect to table ALTER TABLE TABLE [[ DISABLE all_trigger ]] 34) What is pseudo columns ? Name them? A pseudocolumn behaves like a table column. 30) What is Normalisation Normalisation is the process of organising the tables to remove the redundancy. or delete their values. but you cannot insert. 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. 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 A post query will fire for every row that is fetched but the pre query will fire only once. update. 36) Is space acquired in blocks or extents ? In extents . but is not actually stored in the table. You can select from pseudocolumns. This section describes these pseudocolumns: * CURRVAL * NEXTVAL * LEVEL * ROWID * ROWNUM 35) How many columns can table have? The number of columns in a table can range from 1 to 254. 37) what is clustered index? . 32) Deleting the Duplicate rows in the table We can delete the duplicate rows in the table by using the Rowid 33) Can U disable database trigger? How? Yes. 29) What are Codd Rules Codd Rules describe the ideal nature of a RDBMS.There are mainly 5 Normalisation rules.deleted then the table is said to be mutating and no operations can be done on the table except select.

DATE_THRESHOLD SYSTEM. rows are stored together based on their cluster key values . Can not applied for HASH. MLSLABEL. 39 ) What are attributes of cursor? %FOUND . You define an object group when you want to package related objects so you can copy or reference them in another module.SUPPRESS_WORKING 3) What are object group? An object group is a container for a group of objects. 38) what are the datatypes supported By oracle (INTERNAL)? Varchar2.Char .MESSAGE_LEVEL SYSTEM.In an indexed cluster.EFFECTIVE_DATE SYSTEM. Number. except that the resulting reference object maintains a link to its source object. %ISOPEN. A reference object automatically inherits any changes that have been made to the source object when you . %NOTFOUND . Referencing an object is similar to copying an object. 4) What are referenced objects? Referencing allows you to create objects that inherit their functionality and appearance from other objects. Forms 4.%ROWCOUNT 40) Can you use select in FROM clause of SQL select ? Yes.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 * ISOLATED a) on clear details b) on populate details * CASCADE a) per-delete b) on clear details c) on populate details 2) which system variables can be set by users? SYSTEM.

e. 6) Is forms 4. 7) Can you issue DDL in forms? yes.e. Referencing allows you to create objects that inherit their functionality and appearance from other objects. Referencing an object is similar to copying an object. 8) What is SECURE property? Hides characters that the operator types into the text item. Key Triggers : Key Triggers are fired as a result of Key action.g : PostText-item.first_item??) in the Navigational triggers . except that the resulting reference object maintains a link to its source object. When-mouse-button-presed. But can use them in the Key-next-item. We also have event triggers like when -new-form-instance and when-new-block-instance.g.open or regenerate the module that contains the reference 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.Navigational Triggers. 5) Can you store objects in library? Referencing allows you to create objects that inherit their functionality and appearance from other objects. except that the resulting reference object maintains a link to its source object.etc Navigational Triggers : These Triggers are fired as a result of Navigation. E.g : Key-next-field. The Difference between .5 object oriented tool ? why? yes . Mouse Triggers .Pre-text-item.inheritance property 2) OVERLOADING : procedures and functions.Key-Down Mouse Triggers : Mouse Triggers are fired as a result of the mouse navigation. 9 ) What are the types of triggers and how the sequence of firing in text item Triggers can be classified as Key Triggers. We cannot call restricted procedures like go_to(??my_block. Keyup. partially. but the values of bind variables can be concatenated into the string before passing the result to FORMS_DDL. 1) PROPERTY CLASS .when-mouse-doubleclicked. This setting is typically used for password protection. Referencing an object is similar to copying an object. but you have to use FORMS_DDL. 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 Restrictions: The statement you pass to FORMS_DDL may not contain bind variable references in the string.

text b) when new item c) key-next d) when validate e) post text 10 ) Can you store pictures in database? How? Yes . or DATE provided that the total number of columns does not exceed 64K. 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. unlike database tables. All type of triggers . Property classes also allow you to make global changes to applications quickly. The sequence of firing in a text item are as follows :: a) pre . NUMBER. The item level trigger fires first and then the block and then the Form level trigger.Key-next and Post-Text is an very important question. data types. 12) If you have property class attached to an item and you have same trigger written for the item . Non-query Record Group A non-query record group is a group that does not have an associated query. in long Raw datatype. Static Record Group A static record group is not associated with a query. TYPES OF RECORD GROUP: Query Record Group A query record group is a record group that has an associated SELECT statement. record groups are separate objects that belong to the form module in which they are defined. Yes . you . By simply changing the definition of a property class. The columns in a query record group derive their default names. The records in a query record group are the rows retrieved by the query associated with that record group. but whose structure and values can be modified programmatically at runtime. and lengths from the database columns referenced in the SELECT statement. Programmatically. you can change the definition of all objects that inherit properties from that class. record groups can be used whenever the functionality offered by a two-dimensional array of multiple data types is desirable. A record group can have an unlimited number of columns of type CHAR. LONG. 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. If item level trigger fires. rather. Triggers at the lowest level are always given the first preference. Key next will not fire unless there is a key event. 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. Which will fire first? Item level trigger fires . However.Record group column names cannot exceed 30 characters. property level trigger won't fire.

and they remain fixed at runtime. 2) Can you pass values to-and-fro from foreign function ? how ? Yes . Oracle Forms does not perform navigation (and the resulting validation) to move to the item when an operator activates the item with the mouse. The PL/SQL variable that is passed as a parameter must be a valid PL/SQL data type. . Oracle Forms performs standard navigation to move the focus to the item when the operator activates the item with the mouse. You obtain a return value from a foreign function by assigning the return value to an Oracle Forms variable or item. After assigning an Oracle Forms variable or item value to a PL/SQL variable. When Mouse Navigate is set to False. This property is useful for calling a form from another one. it must also be the appropriate parameter type as defined in the PL/SQL interface. 20) How many types of canvases are there. 18) What are timers ? when when-timer-expired does not fire? The When-Timer-Expired trigger can not fire during trigger. pass the PL/SQL variable as a parameter value in the PL/SQL interface of the foreign function. navigation. 19) Can object group have a block? Yes . These are some other questions that may be asked 1) What are user-exits? It invokes 3GL programs. Make sure that the Oracle Forms variable or item is the same data type as the return value from the foreign function. object group can have block as well as program units.define its structure and row values at design time. 17) What is FORMS_MDI_WINDOW? Forms run inside the MDI application window. There are 2 types of canvases called as Content and Stack Canvas. Its like a plate on which we add items and stacked canvas is used for giving 3 dimensional effect. 15) Can a button have icon and lable at the same time ? -NO 16) What is mouse navigate property of button? When Mouse Navigate is True (the default). Content canvas is the default and the one that is used mostly for giving the base effect. 14) What are ALERT? An ALERT is a modal window that displays a message notifiying operator of some application condition. or transaction processing.

INI file. replace the existing F45XTB.DLL.oracle datasource ? How? Yes . 5) Does user exits supports DLL on MSWINDOWS ? YES . 9) Can you connect to non . Cursor mode . 8) what is precompiler? It is similar to C precompiler directives.This is property includes for application that will run against NON-ORACLE datasources . or rename the DLL to F45XTB. a) immediate b) delayed 11) What are savepoint mode and cursor mode properties ? level? Specifies whether Oracle Forms should issue savepoints during a session. non .) dateable n-updateable. 10 ) what are key-mode and locking mode properties? level ? Key Mode : Specifies how oracle forms uniquely identifies rows in the database.e.database block that oracle .DLL in the ORAWINBIN directory with the new F45XTB. i. 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.DLL. 12) What is transactional trigger property? Identifies a block as transactional control block. Key setting unique (default.DLL.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. use the default setting. 6) What is path setting for DLL? Make sure you include the name of the DLL in the FORMS45_USEREXIT variable of the ORACLE.define cursur state across transaction Open/close. If you rename the DLL to F45XTB. 4) Can you call WIN-SDK thruo' user exits? YES. This property is included primarily for applications that will run against non-ORACLE data sources. For applications that will run against ORACLE. Locking mode : Specifies when Oracle Forms should attempt to obtain database locks on rows that correspond to queried records in the form.

Oracle Forms rolls back uncommitted changes to this savepoint. Oracle Forms keeps the higher call active and treats it as a call to the new form. list list_type := 0). If the CLEAR_FORM function causes a rollback when the called form is current. If the parent form was a called form. 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. Oracle Forms rolls back uncommitted changes to this savepoint. method Is a method (procedure) of the OLE2 object.CALL_FORM.INVOKE (object obj_type. 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. Oracle Forms issues a savepoint for the called form. Oracle Forms runs the new form with the same Runform options as the parent form. but parent remains active. Syntax: PROCEDURE OLE2. 15) What are OPEN_FORM.forms should manage as transactional block. .CREATE_ARGLIST function. 16 ) What is call form stack? When successive forms are loaded via the CALL_FORM procedure. Oracle Forms releases memory (such as database cursors) that the terminated form was using.(NON-ORACLE datasource) default FALSE.The calling form is terminated as the parent form. Oracle Forms runs the new form with the same options as the parent form. Oracle Forms issues a savepoint for the called form. it releases lock and control goes back to the calling form. If the calling form had been called by a higher form. method VARCHAR2.NEW_FORM? diff? CALL_FORM : It calls the other form. list Is the name of an argument list assigned to the OLE2. the resulting module hierarchy is known as the call form stack. OPEN_FORM : When you call a form. Parameters: object Is an OLE2 Automation Object. If the CLEAR_FORM function causes a rollback when the called form is current. When you call a form. (FORMS_OLE) 14) What does invoke built-in do? This procedure invokes a method. NEW_FORM : Exits the current form and enters the indicated form. when called form completes the operation .

color. and any visual attribute properties in the class are ignored.You can change the appearance of objects at runtime by changing the named visual attribute programmatically.Consider the form developed in a windows system. the named visual attribute settings take precedence. You can programmatically change an object's named visual attribute setting to change the font. between VAT and Property Class? imp Named visual attributes define only font.17) Can u port applictions across the platforms? how? Yes we can port applications across platforms. Set form45_font to the desired font. When an object is inheriting from both a property class and a named visual attribute. color. property class assignment cannot be changed programmatically. and pattern of the object at runtime. 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. . Change windows registry(regedit). property classes can contain these and any other properties.fmb scott/tiger GUI 1) What is a visual attribute? Visual attributes are the font.The form would be generated in unix system by using f45gen my_form. 7) Can u have OLE objects in forms? Yes. and pattern properties that you set for form and menu objects that appear in your application's interface. you can display a pre-determined item in a special color when it is part of the current record. 2) Diff. color. 6) Can u set default font in forms? Yes. and pattern attributes. 3 ) Which trigger related to mouse? * When-Mouse-Click * When-Mouse-DoubleClick * When-Mouse-Down * When-Mouse-Enter * When-Mouse-Leave * When-Mouse-Move * When-Mouse-Up 4) What is Current record attribute property? Specifies the named visual attribute used when an item is part of the current record. but you cannot dynamically highlight the current item. 5) Can u change VAT at run time? Yes. as the input focus changes.

Developer /2000(Form 4. 9) What r the types of windows (Window style)? Specifies whether the window is a Document window or a Dialog window. Use this property to dynamically change the shape of the cursor.8) Can u have VBX and OCX controls in forms ? Yes. This is useful for maintaining the fields .There are basically 9 Processes but .5 1) How many types of columns are there and what are they Formula columns : For doing mathematical calculations and returning one value Summary Columns : For doing summary calculations such as summations etc. Reports 2. 3) Can u run the report with out a parameter form Yes it is possible to run the report without parameter form by setting the PARAM value to Null 4) What is the lock option in reports layout By using the lock option we cannot move the fields in the layout editor outside the frame. 1) This is one of the most frequently asked question. Place holder Columns : These columns are useful for storing the value in a variable 2) Can u have more than one layout in report It is possible to have more than one layout in a report by using the additional layout option in the layout editor. 10) What is OLE Activation style property? Specifies the event that will activate the OLE containing item.5) Oracle 1) What are the Back ground processes in Oracle and what are they. 11) Can u change the mouse pointer ? How? Yes. 5) What is Flex Flex is the property of moving the related fields together by setting the flex property on 6) What are the minimum number of groups required for a matrix report The minimum of groups required for a matrix report are 4 Important Questions in Oracle. 5 and Reports 2. Specifies the mouse cursor style.

e) CheckPoint(CKPT) :: At Specified times.S in Programming Language.DML and T. 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.in a general system we need to mention the first five background processes. As transaction commits and log buffer fills.e.They do the house keeping activities for the Oracle and are common in any system. 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.Fetch.g:: Using the Sql Statements in languages such as 'C'. b)LogWriter(LGWR) :: LogWriter writes the redo log entries to disk.C. c) System Monitor(SMON) :: The System Monitor performs instance recovery at instance startup. Open. According to ANSI.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.This is useful for recovery from system failure d)Process Monitor(PMON) :: The Process Monitor peforms process recovery when user Process fails.e. Redo Log data is generated in redo log buffer of SGA. 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 . 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.e. Pmon Clears and Frees resources that process was using.This is required since the data is not written whenever a transaction is commited. LGWR writes log entries into a online redo log file.g :: Alter Statements.g:: Alter System f) Embedded Sql :: Incorporate DDL. 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 . 2) How many types of Sql Statements are there in Oracle 2) There are basically 6 types of sql statments. 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. a transaction begins with first executable statment and ends when it is explicitly commited or rolled back.Set Role e) System Control Statements :: Change Properties of Oracle Instance .

functions.update . 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.g:: operations insert. g) Database Buffer Cache :: Databese Buffer of SGA stores the most recently used blocks of datatbase data.permanent changes resulting from the SQL statements. They are basically used for backup when a database crashes. c) SavePoint :: For long transactions that contain many SQL statements. e) Cursor :: A cursor is a handle ( name or a pointer) for the memory associated with a specific stament. update to. d) Rolling Forward :: Process of applying redo log during recovery is called rolling forward.It consists of Database Buffer Cache and Redo log Buffer. Procedures do not return values while Functions return only One Value Packages :: Packages Provide a method of encapsulating and storing related procedures. j) Process :: A Process is a 'thread of control' or mechansim in Operating System that executes series of steps.The set of database buffers in an instance is called Database Buffer Cache. g) Program Global Area (PGA) :: The PGA is a memory buffer that contains data and control information for server process. or delete from table. DT are useful for implementing complex business rules which cannot be enforced using the integrity rules. 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. Savepoints can be used to divide a transactino into smaller points. A cursor is basically an area allocated by Oracle for executing the Sql Statement. 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. h) Redo log Buffer :: Redo log Buffer of SGA stores all the redo log entries.delete 3 before . e.We can have the trigger as Before trigger or After Trigger and at Statement or Row level. Oracle uses an implicit cursor statement for Single row query and Uses Explcit cursor for a multi row query. intermediate markers or savepoints are declared.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. 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. b) Rollback :: A transaction that retracts any of the changes resulting from SQL statements in Transaction. 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.

Rowid from dept where (Deptno > 25) c) Optimize_Sql :: By setting the Optimize_Sql = No. Select /*+ First_Rows */ Deptno. f45run module = my_firstform userid = scott/tiger optimize_sql = No d) Optimize_Tp :: .The advantage of using the stored procedures is that many users can use the same procedure in compiled and ready to use format. c) Business Integrity Rules :: The Third Intigrity rule is about the complex business processes which cannot be implemented by the above 2 rules.'FIRST_ROWS'). 9) What are the Various Block Coordination Properties 9) The various Block Coordination Properties are a) Immediate Default Setting.Thus a total of 12 combinations are there and the restriction of usage of 12 triggers has been lifted from Oracle 7.OPTIMIZER_HINT. 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: set_item_property('DeptBlock'. 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. Oracle Forms assigns a single cursor for all SQL statements.3 Onwards.Loc. 8) What are the Various Master and Detail Relation ships.Dname. 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. b) Deffered with Auto Query Oracle Forms defer fetching the detail records until the operator navigates to the detail block.When there is data in Child Tables the Master tables cannot be deleted.This slow downs the processing because for evertime the SQL must be parsed whenver they are executed. Stored Procedures :: Stored Procedures are Procedures that are stored in Compiled form in the database. The Detail records are shown when the Master Record are shown. 7) How many Integrity Rules are there and what are they 7) There are Three Integrity Rules.

unique key and primary key 19) Candidate keys are the columns in the table that could be the primary keys and the . When too_many_rows b) User Defined Exceptions e. The best example is the Property Classes. The Single Table View can be updated but the view with multi table cannot be updated 18) What are the OOPS concepts in Oracle. When no_data_found. Oracle Forms assigns seperate cursor only for each query SELECT statement. We can categorise the properties by setting the visual attributes and then attach the property classes for the objects. 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.By setting the Optimize_Tp= No.g.g.'Second'Null). 18) Oracle does implement the OOPS concepts. All other SQL statements reuse the cursor. Views are built using the columns from one or more tables.'First'.'1'. They are a) System Exceptions e. 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.'2'. 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. Here the Null is the else statement where null is done .g select DECODE (EMP_CAT. 12)How many types of Exceptions are there 12) There are 2 types of exceptions. e.

data files . name and location of dbs.redo log files and time stamp. 20)What is concurrency 20) Cuncurrency is allowing simultaneous access of same data by different users.The grant has to be given by the owner of the object.primary key is the key that has been selected to identify the rows. Parameter Files :: Parameter file is needed to start an instance.s. 21) Previleges and Grants 21) Previleges are the right to execute a particulare type of SQL statements. .update or delete is being done. 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.They store the data for the database. 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.To increase the size of the database to store more data we have to add data file. 22)Table Space. Control Files 22)Table Space :: The table space is useful for storing the data in the database. b) Share lock We can do the table as Share_Lock as many share_locks can be put on the same resource.Every datafile is associated with only one database.g :: Right to Connect.Once the Data file is created the size cannot change.This lock should not be applied when we do only select from the row.g. 23) Physical Storage of the Data 23) The finest level of granularity of the data base are the data blocks.A parameter file contains the list of instance configuration parameters e.When a database is created two table spaces are created. Unique key is also useful for identifying the distinct rows in the table. Locks useful for accesing the database are a) Exclusive The exclusive lock is useful for locking the row when an insert.Parameter File. Right to create.acme lang Control Files :: Control files record the physical structure of the data files and redo log files They contain the Db name. Right to resource Grants are given to the objects so that the object might be accessed accordingly. Data Files :: Every Oracle Data Base has one or more physical data files.:: db_block_buffers = 500 db_name = ORA7 db_domain = u. e.

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. 30) What is Normalisation 30) Normalization is the process of organizing the tables to remove the redundancy. There are mainly 5 Normalization rules. There are basically 2 phases in a 2 phase commit.:: Pctfree 20. a) Prepare Phase :: Global coordinator asks participants to prepare b) Commit Phase :: Commit all participants to coordinator to Prepared. 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. 26) What is a 2 Phase Commit 26) Two Phase commit is used in distributed data base systems. 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.Data for row is stored in a chain of data blocks . This is useful to maintain the integrity of the database so that all the users see the same values. 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 . 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. 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. Similarly Pct Used is used to denote the percentage of the used space that is to be used when creating a table eg.Segments :: Set of Extents allocated for Extents. It contains DML statements or Remote Procedural calls that reference a remote object. 29) What are Codd Rules 29) Codd Rules describe the ideal nature of a RDBMS.

38) what are the datatypes supported By oracle (INTERNAL)? Varchar2. 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. but is not actually stored in the table.%ROWCOUNT 40) Can you use select in FROM clause of SQL select ? Yes. You can select from pseudocolumns. Number. . With respect to table ALTER TABLE TABLE [[ DISABLE all_trigger ]] 34) What is pseudo columns ? Name them? 34) A pseudocolumn behaves like a table column. but you cannot insert. or delete their values. This section describes these pseudocolumns: * CURRVAL * NEXTVAL * LEVEL * ROWID * ROWNUM 35) How many columns can table have? The number of columns in a table can range from 1 to 254.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. Can not applied for HASH.Char . 39 ) What are attributes of cursor? %FOUND . 36) Is space acquired in blocks or extents ? In extents . %ISOPEN. MLSLABEL. update. 37) what is clustered index? In an indexed cluster. rows are stored together based on their cluster key values . %NOTFOUND .

You define an object group when you want to package related objects so you can copy or reference them in another module. . 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.SUPPRESS_WORKING 3) What are object group? 3) An object group is a container for a group of objects.DATE_THRESHOLD SYSTEM. Referencing an object is similar to copying an object. except that the resulting reference object maintains a link to its source object.MESSAGE_LEVEL SYSTEM.Forms 4.EFFECTIVE_DATE SYSTEM.5 Questions 1) Which trigger are created when master -detail rela? 1) master delete property * NON-ISOLATED (default) a) on check delete master b) on clear details c) on populate details * ISOLATED a) on clear details b) on populate details * CASCADE a) per-delete b) on clear details c) on populate details 2) which system variables can be set by users? 2) SYSTEM. 4) What are referenced objects? 4) Referencing allows you to create objects that inherit their functionality and appearance from other objects.

. Referencing an object is similar to copying an object. 8) What is SECURE property? 8). partially.5 object oriented tool ? why? 6) yes .Hides characters that the operator types into the text item. except that the resulting reference object maintains a link to its source object. Any string expression up to 32K: ?Pa 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 Restrictions: The statement you pass to FORMS_DDL may not contain bind variable references in the string. 1) PROPERTY CLASS .inheritance property 2) OVERLOADING : procedures and functions. 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. but you have to use FORMS_DDL. 7) Can you issue DDL in forms? 7) yes. 6) Is forms 4. but the values of bind variables can be concatenated into the string before passing the result to FORMS_DDL. Referencing an object is similar to copying an object. This setting is typically used for password protection.5) Can you store objects in library? 5) Referencing allows you to create objects that inherit their functionality and appearance from other objects. 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. except that the resulting reference object maintains a link to its source object. Referencing allows you to create objects that inherit their functionality and appearance from other objects.

e. All type of triggers . Mouse Triggers .9 ) What are the types of triggers and how the sequence of firing in text item 9) Triggers can be classified as Key Triggers. The sequence of firing in a text item are as follows :: a) pre . Key Triggers :: Key Triggers are fired as a result of Key action.text b) when new item c) key-next d) when validate e) post text 10 ) Can you store pictures in database? How? 10)Yes . * 12 a) If you have property class attached to an item and you have same trigger written for the item . Key-up.Key-Down Mouse Triggers :: Mouse Triggers are fired as a result of the mouse navigation. The item level trigger fires first and then the block and then the Form level trigger.g. Property classes also allow you to make global changes to applications quickly. Key next will not fire unless there is a key event. property level trigger won't fire. 13) What are record groups ? * Can record groups created at run-time? 13)A record group is an internal Oracle Forms data structure that has a column/row . in long Raw datatype. Which will fire first? 12)Item level trigger fires . Triggers at the lowest level are always given the first preference. We also have event triggers like when ?Vnew-form-instance and when-new-blockinstance. 11) What are property classes ? Can property classes have trigger? 11) Property class inheritance is a powerful feature that allows you to quickly define objects that conform to your own interface and functionality standards. When-mouse-button-presed.when-mouse-doubleclicked. The keynext is fired as a result of the key action while the post text is fired as a result of the mouse movement.g :: Key-next-field. Yes . We cannot call restricted procedures like go_to(??my_block.g : PostText-item.first_item??) in the Navigational triggers But can use them in the Key-next-item.e. you can change the definition of all objects that inherit properties from that class.Pre-text-item.etc Navigational Triggers :: These Triggers are fired as a result of Navigation. If item level trigger fires. E.Navigational Triggers. The Difference between Key-next and Post-Text is an very important question. By simply changing the definition of a property class.

14) What are ALERT? 14)An ALERT is a modal window that displays a message notifying operator of some application Condition.framework similar to a database table. 15) Can a button have icon and label at the same time ? 15) -NO 16) What is mouse navigate property of button? 16) When Mouse Navigate is True (the default). When Mouse Navigate is set to False. Non-query Record Group A non-query record group is a group that does not have an associated query. record groups can be used whenever the functionality offered by a two-dimensional array of multiple data types is desirable. you define its Structure and row values at design time. and lengths from the database columns referenced in the SELECT statement. Oracle Forms does not perform navigation (and the resulting validation) to move to the item when an operator activates the item with the mouse. 17) What is FORMS_MDI_WINDOW? 17) forms run inside the MDI application window. The records in a query record group are the rows retrieved by the query associated with that record group. data types. or DATE provided that the total number of columns does not exceed 64K. Programmatically. LONG. A record group can have an unlimited number of columns of type CHAR. NUMBER. Record group column names cannot exceed 30 characters. TYPES OF RECORD GROUP: Query Record Group A query record group is a record group that has an associated SELECT statement. Oracle Forms performs standard navigation to move the focus to the item when the operator activates the item with the mouse. This property is useful for calling a form from another one. The columns in a query record group derive their default names. . Static Record Group A static record group is not associated with a query. but whose structure and values can be modified programmatically at runtime. and they remain fixed at runtime. record groups are separate objects that belong to the form module in which they are defined. rather. However. unlike database tables.

3) What is IAPXTB structure ? 3) 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.18) What are timers ? when when-timer-expired does not fire? 18) The When-Timer-Expired trigger can not fire during trigger. Content canvas is the default and the one that is used mostly for giving the base effect. navigation. it must also be the appropriate parameter type as defined in the PL/SQL interface. object group can have block as well as program units. You obtain a return value from a foreign function by assigning the return value to an Oracle Forms variable or item. The PL/SQL variable that is passed as a parameter must be a valid PL/SQL data type. 6) What is path setting for DLL? 6) Make sure you include the name of the DLL in the FORMS45_USEREXIT variable of . 20) How many types of canvases are there. 5) Does user exits supports DLL on MSWINDOWS ? 5) YES . 19 ) Can object group have a block? 19)Yes . pass the PL/SQL variable as a parameter value in the PL/SQL interface of the foreign function. 20)There are 4 types of canvases called as Content and Stack Canvas. 2) Can you pass values to-and-fro from foreign function ? how ? 2) Yes . After assigning an Oracle Forms variable or item value to a PL/SQL variable. 1) What are user-exits? 1) It invokes 3GL programs. or transaction processing. Make sure that the Oracle Forms variable or item is the same data type as the return value from the foreign function. 4) Can you call WIN-SDK thruo' user exits? 4) YES. The following questions might not be asked in an Average Interview and could be asked when the Interviewer wants to trouble u and go deeppppppppppppp?K?KHe cannot go further?K.. Its like a plate on which we add items and stacked canvas is used for giving 3 dimensional effect.

the ORACLE. Key setting unique (default. replace the existing F45XTB. non .DLL.DLL.database block that oracle forms should manage as transactional block. 9) Can you connect to non . 12) Can you replace default form processing ? How ? 13) What is transactional trigger property? 13) Identifies a block as transactional control block.) dateable n-updateable. OLE automation provides a way for an OLE . i. a) immediate b) delayed 11) What are savepoint mode and cursor mode properties ? level? 11) Specifies whether Oracle Forms should issue savepoints during a session. 8) what is precompiler? 8) It is similar to C precompiler directives.define cursur state across transaction Open/close.DLL.INI file.(NON-ORACLE datasource) default FALSE. or rename the DLL to F45XTB. This property is included primarily for applications that will run against non-ORACLE data sources. use the default setting. Cursor mode . 10 ) what are key-mode and locking mode properties? level ? 10) Key Mode : Specifies how oracle forms uniquely identifies rows in the database.DLL in the ORAWINBIN directory with the new F45XTB.oracle datasource ? How? 9) Yes . If you rename the DLL to F45XTB. 14) What is OLE automation ? 14) OLE automation allows an OLE server application to expose a set of commands and functions that can be invoked from an OLE container application.e. For applications that will run against ORACLE. 7) How is mapping of name of DLL and function done? 7) 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. Locking mode : Specifies when Oracle Forms should attempt to obtain database locks on rows that correspond to queried records in the form.This is property includes for application that will run against NON-ORACLE datasources .

Parameters: object Is an OLE2 Automation Object.container application to use the features of an OLE server application to manipulate an OLE object from the OLE container environment. Oracle Forms issues a savepoint for the called form. list Is the name of an argument list assigned to the OLE2. If the CLEAR_FORM function causes a rollback when the called form is current.CREATE_ARGLIST function. method VARCHAR2. but parent remains active. Oracle Forms releases memory (such as database cursors) that the terminated form was using. If the parent form was a called form. When you call a form. 18) Can u port applictions across the platforms? how? 18) Yes we can port applications across platforms. 17 ) What is call form stack? 17) When successive forms are loaded via the CALL_FORM procedure. If the CLEAR_FORM function causes a rollback when the called form is current.The form would be generated in unix system by using f45gen . Oracle Forms rolls back uncommitted changes to this savepoint. it releases lock and control goes back to the calling form. Oracle Forms runs the new form with the same Runform options as the parent form. list list_type := 0). OPEN_FORM : When you call a form. method Is a method (procedure) of the OLE2 object. Oracle Forms rolls back uncommitted changes to this savepoint. The calling form is terminated as the parent form. NEW_FORM : Exits the current form and enters the indicated form. Oracle Forms keeps the higher call active and treats it as a call to the new form. 16) What are OPEN_FORM.NEW_FORM? diff? 16) CALL_FORM : It calls the other form. Oracle Forms runs the new form with the same options as the parent form.CALL_FORM. If the calling form had been called by a higher form.INVOKE (object obj_type. Oracle Forms issues a savepoint for the called form. (FORMS_OLE) 15) What does invoke built-in do? 15) This procedure invokes a method.Consider the form developed in a windows system. Syntax: PROCEDURE OLE2. when called form completes the operation . the resulting module hierarchy is known as the call form stack.

and pattern properties that you set for form and menu objects that appear in your application's interface. and pattern attributes. You can programmatically change an object's named visual attribute setting to change the font. 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. as the input focus changes. 7) Can u have OLE objects in forms? . Change windows registry(regedit). 2) Diff. you can display a pre-determined item in a special color when it is part of the current record.fmb scott/tiger GUI 1) What is a visual attribute? 1) Visual attributes are the font. Set form45_font to the desired font. property class assignment cannot be changed programmatically. between VAT and Property Class? imp 2)Named visual attributes define only font. the named visual attribute settings take precedence. but you cannot dynamically highlight the current item. color. color. property classes can contain these and any other properties. 5) Can u change VAT at run time? 5) Yes. 3 ) Which trigger related to mouse? 3) When-Mouse-Click When-Mouse-DoubleClick When-Mouse-Down When-Mouse-Enter When-Mouse-Leave When-Mouse-Move When-Mouse-Up 4) What is Current record attribute property? 4) Specifies the named visual attribute used when an item is part of the current record. and pattern of the object at runtime.my_form. You can change the appearance of objects at runtime by changing the named visual attribute programmatically. When an object is inheriting from both a property class and a named visual attribute. and any visual attribute properties in the class are ignored. color. 6) Can u set default font in forms? 6) Yes.

7) Yes. 8) Can u have VBX and OCX controls in forms ? 8) Yes. 9) What r the types of windows (Window style)? 9) Specifies whether the window is a Document window or a Dialog window. 10) What is OLE Activation style property? 10) Specifies the event that will activate the OLE containing item. 11) Can u change the mouse pointer ? How? 11) Yes. Specifies the mouse cursor style. Use this property to dynamically change the shape of the cursor. Reports 2.5 1) How many types of columns are there and what are they 1) Formula columns :: For doing mathematical calculations and returning one value Summary Columns :: For doing summary calculations such as summations etc. Place holder Columns :: These columns are useful for storing the value in a variable 2) Can u have more than one layout in report 2) It is possible to have more than one layout in a report by using the additional layout option in the layout editor. 3) Can u run the report with out a parameter form 3) Yes it is possible to run the report without parameter form by setting the PARAM value to Null 4) What is the lock option in reports layout 4) By using the lock option we cannot move the fields in the layout editor outside the frame. This is useful for maintaining the fields . 5) What is Flex 5) Flex is the property of moving the related fields together by setting the flex property on 6) What are the minimum number of groups required for a matrix report 6) The minimum of groups required for a matrix report are 4 3.0 Data Base Administration 3.1 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) SMON PMON LGWR DBWR ARCH CKPT RECO Dispatcher 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) ?

sql.sql. 13. If the ratio is greater that 1 then increase the SHARED_POOL_SIZE. It is due to the data dictionary cache is too small. they will first brought to redo log buffers in SGA and LGWR will write into files frequently. 16. 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. By increasing the SHARED_POOL_SIZE parameter we can optimize the size of Data Dictionary Cache. This will create all definitions into newfile. DB_BLOCK_BUFFERS parameter in INIT. indexes and clusters. 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. 12.It is area in memory that is used by a Single Oracle User process. 3.ORA decides the size. 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. 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. What is dictionary cache ? Dictionary cache is information about the database objects stored in a data dictionary table. 18.dp indexfile=newfile.3 Logical & Physical Architecture of Database 14. 15. What is meant by recursive hits ? Number of times processes repeatedly query the dictionary table is called recursive hits. Drop necessary objects. 17. LOG_BUFFER parameter will decide the size. . 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.

RBS2 .Temporary tablespace for users USERS .sql after altering the tablespaces. What is significance of having storage clause ? We can plan the storage for a table as how much initial extents are required. When a segment is dropped its extents are reallocated and are marked as free. 23.Tool table TOOLS1 .0.Indexes for tools table RBS .Standard Operations Rollback Segments RBS1. How free extents are managed in Ver 6 and Ver 7. 19.Indexes of static tables used for standard operations TOOLS . Import from the backup for the necessary objects. How will you force database to use particular rollback segment ? SET TRANSACTION USE ROLLBACK SEGMENT rbs_name 21. 20. how much can be extended next. Which parameter in Storage clause will reduce no of rows per block ? PCTFREE parameter Row size also reduces no of rows per block.Data dictionary tables DATA . What is meant by free extent ? A free extent is a collection of continuous free blocks in tablespace. ? Free extents cannot be merged together in Ver 6.Additional/Special rollback segments TEMP .Indexes for Standard operational tables INDEXES1 .Temporary purpose tablespace TEMP_USER .Run the script newfile. 24. how much % should leave free for managing row updations etc. 22. How does space allocation take place within a block ? .0 Free extents are periodically coalesces with the neighboring free extent Ver 7.Standard operational tables DATA2 .Static tables used for standard operations INDEXES . 25. List the Optimal Flexible Architecture (OFA) of Oracle database ? or How can we organise the tablespaces in Oracle database to have maximum performance ? SYSTEM .User tablespaces.

How the space utilisation takes place within rollback segments ? It will try to fit the transaction in a cyclic fashion to all existing extents. 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. 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. How will you monitor the space allocation ? . Why query fails sometimes ? Rollback segment dynamically extent to handle larger transactions entry loads. 29. What is the OPTIMAL parameter ? It is used to set the optimal length of rollback segment. 28. Make new rollback segment available (After shutdown. Create additional Rollback segment in tablespace (RBS) Deactivate Rollback Segment R0 and activate the newly created rollback segments. 31. A single transaction may wipeout all available free space in the Rollback Segment Tablespace. 32. How will you create multiple rollback segments in a database ? Create a database which implicitly creates a SYSTEM Rollback Segment in a SYSTEM tablespace. modify init.ora file and Start database) Create other tablespace (RBS) for rollback segments. 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). This prevents other user using Rollback segment. 30. 27.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. Create a Second Rollback Segment name R0 in the SYSTEM tablespace.

Rollback Segment is on-line AVAILABLE . 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.By querying DBA_SEGMENT table/View 33.Rollback Segment dropped NEEDS RECOVERY . None is available. 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 . 35.Rollback Segment available bur not on-line OFF-LINE . 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. 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. 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.Contains data from an unresolved transaction involving a distributed database 34.Rollback Segment us off-line INVALID . How will you monitor rollback segment status ? Querying the DBA_ROLLBACK_SEGS view The status available as follows : IN USE .Contains data but need recovery or corrupted PARTLY AVAILABLE . So that the RBS must extent.

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. In most Operating System if any disk failure occurs it automatically switchover to place of failed disk. What is a Rollback segment entry ? It is the set of before image data blocks that contain rows that are modified by a transaction. Multiple copies of control files are advisable. 39. 38. This reduces I/O load on the main set of disks. 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. 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. . If any one group fails then database automatically switch over to next group. What is use of rollback segment in Database ? They allow the database to maintain read consistency between multiple transactions. It will be used to maintain internal consistency and guide recovery operations. What is advantage of having disk shadowing/Mirroring ? Shadow set of disks save as a backup in the event of disk failure.37. 42. 41. Each Rollback Segment entry must be completed within one rollback segment. This can be achieved by creating group of log files together.ora file by adding new control file name Restart the database 40. What is a control file ? Database's overall physical architecture is maintained in a file called control file. Is it possible to use raw devices as data file and what is the advantages over file system files ? Yes. 43. so that LGWR will automatically writes them to all the members of the current on-line redo log group. 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.

When will be a segment released ? When Segment is dropped. 44. 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. What a hit ratio ? It is a measure of well the data cache buffer is handling requests for data. Inserts of. 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. 45. instead we can use dd command which is less flexible and has limited recoveries.A single rollback segment can have multiple rollback segment entries.Hit Misses) / Logical reads. updates to. 50. Hit Ratio = (Logical Reads . What are the dictionary tables used to monitor a database spaces ? DBA_FREE_SPACE DBA_SEGMENTS DBA_DATA_FILES . 47.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. 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. and deletes of rows as well as columns larger than a single data block. When Shrink (RBS only) When truncated (TRUNCATE used with drop storage option) 46. 3. 49.Physical reads . can cause fragmentation and chained row pieces. Trailing nulls and length bytes are not stored. Users cannot access tables except via the procedure.

3. What are the roles and user accounts created automatically with the database ? DBA role .It loads data from standard operating system files (Flat files) into ORACLE database tables. Allocating system storage and planning future storage requirements for the database system. Ensuring compliance with Oracle license agreement 7. 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. Maintain archived data on tape 11. Monitoring and optimising the performance of the database 9. Installing and upgrading the Oracle Server and application tools 2. Backing up and restoring the database 12.indexes) 5. Enrolling users and maintaining system security 6. Managing primary database structures(tablespaces) 4.The DBA role will be assigned to this account. Managing primary objects (table. Contacting Oracle Corporation for technical support 52. and you know the password must use a dedicated server 53.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.views. EXPORT(exp) and IMPOER (imp) utilities allow you to move existing data in ORACLE format to and from ORACLE database.This allows DBA to monitor and control an ORACLE database. 54. SQL*Loader . Planning for backup and recovery of database information 10. What are the database administrators utilities available ? SQL*DBA . SYSTEM user account . .Contains all database system privileges SYS user account . Controlling and monitoring user access to the database 8. What are responsibilities of a Database Administrator ? 1.51. All of the base tables and views for the database's dictionary are store in this schema and are manipulated only by ORACLE.

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 . 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.Must set to a text string of not more that 8 characters and it will be stored inside the datafiles. 56. If name is not mentioned then default name will be used. DB_BLOCK_SIZE . Shutdown the database instance 2. Backup the database 3. Creating roles and assigning privies to roles. What are the minimum parameters should exist in the parameter file (init. it dumps information about the error to its trace. Assign each role to group of users. Start up a new instance and mount but do not open the database .List of control filenames of the database. It cannot be changed after database creation except by re-creating the database. redo log files and control file while database creation. The value should be 5 (background process) and additional 1 for each user. This will simplify the job of assigning privileges to individual users. What is a trace file and how it is created ? Each server and background process can write an associated trace file. 57. DB_BLOCK_BUFFERS .The maximum number of operating system processes that can be connected to ORACLE concurrently. ROLLBACK_SEGMENTS .List of rollback segments an ORACLE instance acquires at database startup. Perform any operating system specific steps (optional) 4. When an internal error is detected by a process or user process.55. Also optionally LICENSE_MAX_SESSIONS.LICENSE_SESSION_WARNING and LICENSE_MAX_USERS. 58. DB_DOMAIN .ora) ? DB_NAME . This can be used for tuning the database.The default data block size and is operating system dependent. What are the steps to switch a database's archiving mode between NOARCHIEVELOG and ARCHIVELOG mode ? 1.

61.5. What is the user of ANALYZE command ? To perform one of these function on an index. How can you enable automatic archiving ? Shut the database Backup the database Modify/Include LOG_ARCHIVE_START = TRUE in init. %T . The file name created is arch0001. What are the various type of snapshots ? Simple and Complex. 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.Thread number left-zero-paded and %t .arc (%S . LOG_ARCHIEVE_DEST = path Shut the database and change these parameters in init.5 Managing Distributed Databases 62. %s .ora file LOG_ARCHIVE_FORMAT = arch%S/s/T/t. 65. table. In ver 7.arc %S is used. What is a snapshot ? Snapshot is an object used to dynamically replicate data between distributed databases at specified time intervals. or cluster : to collect statistics about object used by the optimizer and store them in the data dictionary.ora file Start up the database 60. Switch the database's archiving mode. Differentiative simple and complex.Log sequence number not paded.Thread number not paded). How can we reduce the network traffic ? Replication of data in distributed environment Using snapshots to replicate data Using remote procedure calls. How can we specify the Archived log file name format and destination ? By setting the following values in init.0 they are read only. 3. snapshots . 63.ora files.Log sequence number and is zero left-paded. 64. 59.

What are the pre-requisites to create a snapshot log ? We must be able to create a after row trigger on table (i. If possible it performs a FAST refresh. FORCE . What is a snapshot tag ? It is a table that maintains a record of modifications to the master table in a snapshot. 70. The master table name should be less than or equal to 23 characters. and trigger name will be TLOG$_tablename) . 69.The default value. 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. it should not be already available) After giving table previleges. 71. 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. FAST . CONNECT by clauses. It is stored in the same database as master table and is only available for simple snapshots. What are the options available to refresh snapshots ? COMPLETE . (The table name created will be MLOG$_tablename. 67. Perform the references manually immediately after locking the master tables.Tables are completely regenerated using the snapshot's query and the master tables every time the snapshot referenced. JOINs. It should be created before creating snapshots. 68. How can you enforce referential integrity in snapshots ? Time the references to occur when master tables are not in use.If simple snapshot used then a snapshot log can be used to send only the changes to the snapshot tables. Subquery or a set of operations. Otherwise it will perform a COMPLETE refresh. We can join tables in snapshots by creating a complex snapshot that will be based on the master tables. 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.A simple snapshot is based on a query that does not contains GROUP BY clauses.e.

ora file (optional) 77. What is a logical backup ? Logical backup involves reading a set of database records and writing them into a file. 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. then all sites rollback their transactions. 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.Complete database Incremental Backup . Database uses a two phase commit 73.Only affected table from the last cumulative date / Full backup date . We need to take All Data files All Control files All on-line redo log files Then init. If a network or node failure occurs. What are the different kind of export backups ? Full backup . Export utility is used for taking backup and Import utility is used to recover from backup. What is cold backup ? What are the elements of it ? Cold backup is taking backup of all physical files after normal shutdown of database.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. 76. then all sites commit their transactions.6 Managing Backup & Recovery 74. The Commit Phase : If there is no problem with prepare phase.Only affected tables from last incremental date / Full backup date Cumulative backup . 3. What are the different methods of backing up oracle database ? Logical Backups Cold Backups Hot Backups (Archive log) 75.

80. What is the use of GRANT option in EXP command ? A flag to indicate whether grants on database objects will be exported or not. What is the use of INDEXES option in EXP command ? A flag to indicate whether indexes on tables will be exported. 84. 82. What is the use of COMPRESS option in EXP command ? Flag to indicate whether export should compress fragmented segments into single extents. What is the use of CONSTRAINTS option in EXP command ? A flag to indicate whether constraints on table need to be exported. If 'N' only DDL statements for the database objects will be created.78. What is use of ROWS option in EXP command ? Flag to indicate whether table rows should be exported. redo log files On control file. 87. What is hot backup and how it can be taken ? Taking backup of archive log files when database is open. 81. Values is 'Y' or 'N'. . For this the ARCHIVELOG mode should be enabled. What is the use of OWNER option in EXP command ? List of table accounts should be exported. 79. What is the use of FULL option in EXP command ? A flag to indicate whether full database export should be performed. 83. 86. 85. What is the use of FILE option in EXP command ? To give the export file name. What is the use of TABLES option in EXP command ? List of tables should be exported. The following files need to be backed up : All data files All archive log.

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. What is the use of IGNORE option in IMP command ? A flag to indicate whether import should ignore errors encounter when issuing CREATE command. 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. 93. the flag indicates whether a record will be stored in data dictionary tables recording the export. 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. 98. What is the use of SHOW option in IMP command ? A flag to indicate whether file content should be displayed or not. What is use of RECORD option in EXP command ? For incremental exports. CUMULATIVE. INCREMENTAL 90. What is the use of PARFILE option in EXP command ? Name of the parameter file to passed for export. COMPLETE. 91. 92. What is the use of GRANT option in IMP command ? .88. 94. 89. 97. What is use of RECORD LENGTH option in EXP command ? Record length in bytes. What is use of INCTYPE option in EXP command ? Type export should be performed. 96. What is use of FILE option in IMP command ? The name of file from which import should be performed.

What is use of TABLES option in IMP command ? A list of tables to be imported. What is use of RECORDLENGTH option in IMP command ? The length of the record in bytes of the export dump file. What is the use of FULL option in IMP command ? A flag to indicate whether full import should be done or not. I f this is set to 'N' then only DDL for the database objects will be executed ? 101. 103. 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 the use of FROMUSER option in IMP command ? A list of database accounts whose objects should be read from the export dump file. 106.A flag to indicate whether grants on database objects will be imported. 100. 105. What is use of ROWS option in IMP command ? A flag to indicate whether rows should be imported. What is use of INCTYPE option in the IMP command ? The type of import being performed. What is use of INDEXES option in IMP command ? A flag to indicate whether import should import index on tables or not. What is use of PARFILE option in IMP command ? Name of the parameter file to passed for import command. 107. 109. What is use of INDEXFILE option in IMP command ? . 102. 99. 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.

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.If filename is given then all the DDL will be created in the given file. 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 . 115. What are the advantages of using direct path option in SQL*Loader ? . 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.13 respectively. What is use of LOG option in IMP command ? Name of the file to which the log of the import will be written. 111. 112. Now the database will be available to latest status provided there is no transaction taken place after the 13th incremental backup. 110. 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.Incremental Backup C .Full Backup I . List the steps to restore the database if data file lost. 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.Cumulative Backup Suppose database crash on 14th morning. (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. 113.

It bypasses the normal processing of insert statements and instead writes directly to tables data blocks. How does DDE work ? DDE uses shared memory to exchange data and a protocol to synchronize passing of data. An inter process communication is a method of passing data between processes and synchronising events.Object Linking and Embedding. 116. Data should be presorted otherwise it needs the double the size in tablespace. MAPI ?V Messaging Application Program Interface What is DDE ? DDE is method for Inter Process Communication. data and windows resources. DDE ?V OLE DDE .Dynamic Data Exchange. How does a DLL work ? . DLL .Dynamic Link Library OLE . Sessions) Apart from this all DBA activities can be performed through SQLDBA command. What does a DLL contain ? A DLL contains code. 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. 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 : Processes Sessions Tables(Locks etc) SQL Area Library Cache Latch Locks File I/O System I/O Rollback Segments Statistics (System.

The reference object is automatically refreshed 2. What is an object handler ? An Object handler is a set of DLL that facilitate communication between client application and server application. wht happens the linked object in the document ? 1. What is the connection between OLE and DDE ? OLE is a set of DDE executable commands to which DDE protocol is applicable. Server application. What is a monitor application in the context of DDE ? A monitor application can only intercept messages but cannot act on it. Client/Server application and Monitor application. What is the use of a monitor application ? A monitor application can be used as a debugging tool. . 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. What are the parts of a DDE application ? Client application. Server and Object handlers. What are the two types of DDE application ? Message based DDE applications and Dynamic Data Exchange Management Library application.A DLL allocates a global memory block to an application and uses this to exchange data with application. The reference object is not refreshed 3. Answer is 2 What are the types of OLE applications ? Client. The user decides whether the object is to refreshed or if the older version is retained.

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. What is the difference between pre-query and pre-select triggers 10. open_form.key-next-item . Oracle Forms: 1. on select 7. What is the difference between PL/SQL library and object library 15. How do you trap default forms processing ( DML) 5. What is purpose and order of firing the following triggers 1. new_form Which is restricted built-in and why? Which can??t issue savepoint What is session parameter of open_form? 20. what is the return data types of id_null. what is the difference between call_form . Facilitate the use of specialized applications to create objects which can be embedded. when-new-form-instance 2. pre-text-item (Both are in form-level) 12. types of record groups and usage 17. what is id_null function 18. How to see the select statement when we issue execute_query 3. What is the order of firing the following triggers 1. which are the triggers will fire in the following situation I have three text items 1. What is the number of records buffered and Query array size properties of data block 8. show_lov 19. on fetch 2. what is the use of pre text/pre record/pre form 16. How to use single data block to query multiple tables 2. Text-item1 1. What is the difference between pre-text-item and when-new-item-instance triggers 11. What is the order of checking for a program unit from form module(local program unit.What are the advantages of OLE ? No need to switch between applications. What is the difference between object libraries and object groups 9. library. stored procedure) 14. What are the system variables can be changed 4. show_alert. What is the difference between post-query and post-select 6. What is the validation unit property of form module 13.

How to set forms default directory 32. what is data parameter and text parameter 26. Text-item3 1. form then item level trigger what changes I have to make. When-validate-item 3. Can we re-generate a library that is currently accessing by some other session 27. Pre-text-item 2. block and item level If I want to execute first block. Go_item (??text_item3??). What is the difference between OLE object created at design time and runtime . How do you suppress the logon screen while running the form for the first time 23. Then what are the triggers will fire and order of firing 21. Key-next-item 5. What is synchronous and asynchronous parameters for run_product built-in 22. : Text_item2: = ??Nagendra??. When-new-item-instance 4. Can we re-generate and save a library that has been attached with some forms but they are running currently. When-validate-item 3. Post-change If I press tab or enter key at text-item1 what are the triggers will fire and order of firing during the entire navigation. Go_item (??text_item3??). If I change key-next-item trigger of text-item1 Go_item (??text_item2??). 28. I have when-button-pressed trigger at form . 2. When-new-item-instance 4. Can we re-generate a library that has been attached with some forms . Pre-text-item 2. Post-text-item 6. Key-next-item 5. Post-change 3. Text-item2 1. What is the use of transactional triggers 30. will the changes will reflect in the referenced forms 29. Can we modify a sub classed object ( from object group and from object libraries) 31. Post-text-item 6. What is the return data type of populate_group built-in 33.Go_item (??text_item2??). 25. What is primary canvas property of window and where it will be useful 24.

what is the use of group filter SQL and PL/SQL 1. In a non-isolated relation what is the order of firing the following triggers 1. How to copy values from list item to record group 46. How to use single LOV for multiple items Oracle reports: 1. Which object relates content and stacked canvases(window) 44. What is implicit cursors 5.Nth row 2. What is the use of frame(not repeating) 9. Will the timer will expire during large query executing 35. What is the anchoring and enclosing object 4. What is the difference between lexical and bind parameters 7. Can we put items other than buttons in the toolbars 43. What is flex mode and confine mode 12. What is the use of enforce primary key property of data block 42. What is anchor object 5. What is the coordination property of a relation 39. What is the built-in package available to manipulate text files( forms) 36. If we change relation property from non-isolated to cascading what changes will occur 38. what is use of the index ( maximum try to cover) 3. Groups and Repeating frames) 2. How to change the font of an field at runtime based on the value 3. How to find out the previous form id in multi form application(it??s system variable) 48. pre-select 47. on-clear-details 3. How to rotate a field( data base field in the layout) 6. How to navigate from one form to other form(built-in) 45. Can we define a relation between two control blocks 37. What is the use of format triggers 10. Queries for Nth maximum . Minimum requirement to make a matrix report (Queries. on-populate-details 2. Select the departments whose sum of the salary greater than the sum of salaries of any department? 4. What is the place holder 8. pre-query 4. What is the first trigger fires when we run a form 41.34. SRW package 11. What is public synonyms and uses . what difference between the logical and physical pages and planes 13. If we delete on-clear-details trigger in a relation what happens 40.

what is temporary segments 7. Query to display no of employees in the department 10. Ans: alter table emp modify (empno not null). Query to find the employees whose salary is greater then his department average salary 11. 3. what are the logical database components 3. 1) How delete duplicate records in a table delete from emp where rowid not in (select max(rowid) from emp group by empno). Select * from emp where Comm = null. what are the physical database components 2. how many types of segments are there 6. Select * from emp where Comm = ????. Query to find the employees who is having more then one subordinate 10. The fallowing are the rules for .30 in a single row Output Dept10 dept20 dept30 256 13. what is row chaining 4. what is the relation between oracle data block . When index will be used in the query 7. Select * from emp where Comm in (null).extents and segments 5. 2) How to make a column into not null column. Select * from emp where Comm is ( select null from dual). Query to find the no of employees who is drawing less than 1500 and greater than 2000 Server concepts 1. 2. 4. what is redo log 8. Query to display employees salary as 2000 for department 20 and rest as their salaries 12.e not empty) ?h To make a not null column into null column alter table emp modify (empno null). what is the difference between database buffers and redo log buffer of SGA 10. what is the difference between rollback segments and redo log files 9.6. What is the result of the following queries 1. Query to display employee name and his managers name 9. Query to find the no of subordinate levels for given manager 14. 20. ->this can be done only when all the values in empno are non null (i. 8.

-------------------.emp_self b where a. It can??t be empty) >At any time you may change a column??s not null property to null ii.sal. iii. modifying a column >You can increase a CHAR column??s width at any time.---------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. 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. ii) Query to get the employees who are getting salaries more than their managers select a.---------. EMP_NO ------101 100 . Add the column without NOT NULL specified.e when new column can accept null values ) >You may add a NOT NULL column in three steps. b.mgr =b.emp_no from emp_self a. c.---------. EMP_NO EMPN_NAME SAL MGR DEPTID --------.mgr from emp_self where mgr in (select emp_no from emp_self where sal > 10000). >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.emp_no and a.i. select * from emp_self. adding a colum to a table >You may add a column at any time if NOT NULL isn??t specified (i. a. Fill every row in that column with data. Modify the column to be NOT NULL.sal > b.

empn_name.either actual or calculated values within a single row. n=4 . sal) from emp_self a where 1 in (select count(*) from emp_self b where a.deptid.000 105 SQL> select max(sal). end loop. Ex.semantic(logical) or precedence begin for i in 1.-------------------.MIN) and (GREATEST . 5) Difference between (MAX. iv) Query to find the second highest salary in different departments.sal < b.---------100 alen 9.sal).---------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. sal =10000 ->fifth highest salary . select a.SAL) ------. EMP_NO EMPN_NAME SAL MGR -----.110 300 iii) Query to find the nth highest salary select a.LEAST) The functions max and min compares different rows .sal from emp_self a where &n = (select count(*) from emp_self b where a.min(a. sal =20000 ->second highest salary .sal < b.deptid) group by a. . end.------..000 110 101 charles 8. DEPTID -----20 50 4) study the fallowing pl/sql block and find the type of error ->syntax.sal group by b.000 105 200 boris 10.a.deptid.min(sal) from emp_self. select * from emp_self. When n=1 . Whereas greatest and least work on a group of columns .5 loop update emp set sal = 1000 where empno =100 . DEPTID MIN(A.

10)Can we return a OUT parameter from a procedure ?. 12)How do you handle exceptions ?. 9)What are the different kinds of parameters ?. any processing that will affect the data retrieved by the report should be performed in the Before Parameter Form or After Parameter Form triggers. 7)What are the improtant differences between Procedures. 18)Advantages of union over joins .Functions and Triggers ?. 11)Differences between ROWNUM and ROWID . 15)Differences between delete . 13)How do you write user defined message for all the system defined exceptions.---------10000 8000 SQL> select greatest(sal).---------9000 9000 10000 10000 8000 8000 6)Different kinds of constraints . 16) How do you display messages in the backend procedure ?. save point 20)Difference between truncate and delete (truncate =delete + commit) 1)Name the five global report triggers i. before report ii. Report Builder has five global report triggers. rollback. 14)Difference between Commit and H(?)ost . between pages iv. after report iii. before parameter form v. GREATEST(SAL) LEAST(SAL) ------------. You cannot create new global report triggers. The trigger names indicate at what point the trigger fires: . 8)Can we call a Procedure from a Trigger ?.least(sal) from emp_self.after parameter form As a general rule. 6)Where Procedures. 9)what are packages ?.truncate and drop commands . 19)Definitions of commit.Functions and Triggers are stored ?. 17) why can??t you use create/drop while declaring a trigger ?. 12)How many system defined exceptions are there ?. (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.MAX(SAL) MIN(SAL) ---------.

Between Pages Fires before each page of the report is formatted. PROCEDURE NEW_FORM (formmodule_name VARCHAR2). you can use this trigger for validation of command line parameters or other data. if an error occurs. however. new_form ( ) call_form ( ) :-Runs an indicated form while keeping the parent form active. you can access parameters and check their values. you can use this trigger for validation of command line parameters. If the parent form was a called form. or after report output is sent to a specified destination. The calling form is terminated as the parent form. 4) system. Form Builder keeps the higher call active and treats it as a call to the new 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. whether or not your report completed successfully. If the calling form had been called by a higher form. except the very first page. In the Previewer. the After Parameter Form trigger still fires.MODE indicates whether the form is in Normal. Consequently. Note. such as a file. Consequently. Columns from the data model are not accessible from this trigger. or Fetch Processing mode. PROCEDURE CALL_FORM (formmodule_name VARCHAR2). This trigger can be used to clean up any initial processing that was done. Form Builder runs the called form with the same Runform preferences as the parent form. From this trigger. Form Builder releases memory (such as database cursors) that the terminated form was using. The value is always a character string. this trigger still fires. This trigger can be used for customized page formatting. Before Parameter Form Fires before the Runtime Parameter Form is displayed. . From this trigger. Form Builder runs the new form with the same options as the parent form. a printer. return to the Runtime Parameter Form. Form Builder runs the new form with the same Runform options as the parent form. this trigger only fires the first time that you go to a page. you can access and change the values of parameters. After Parameter Form Fires after the Runtime Parameter Form is displayed.Before Report Fires before the report is executed but after queries are parsed. that this trigger always fires. PL/SQL global variables. If the Runtime Parameter Form is suppressed. 2) Name the different types of alerts note . If you subsequently return to the page. This trigger can also be used to change parameter values or. the trigger does not fire again. such as deleting tables. After Report Fires after you exit the Previewer.mode-> SYSTEM. and report-level columns.caution 3)call_form ( ). or an Oracle Office userid. New_form( ) :Exits the current form and enters the indicated form. Enter Query. If the Runtime Parameter Form is suppressed. stop .

8)Can we access a row in the first block from second by referencing block name along with the rowid ?. be aware that if testing from a When-Button-Pressed trigger in a control block. Enter Query mode will never be entered. 9)In case of a block with multiple records how do check where a user entering a duplicate record well before saving it ?. 5)Different types of list boxes.0 Forms 4.0.2 Canvas Views 3. Usage Notes When using SYSTEM. ENTER-QUERY Indicates that the form is currently in Enter Query mode.MODE to check whether the current block is in Enter Query mode. meaning that a query is currently being processed.1 Object Groups 1. 6)What are record groups ?. 9.NORMAL Indicates that the form is currently in normal processing mode. 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. QUERY Indicates that the form is currently in fetch processing mode. 4)What are important new(Advanced) features of Forms 6. You define an object group when you want to package related objects. 9.5 9. 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 . 7)In case of a block with multiple records how to display records on the screen without using cursors ?. 10)How to take care of concurrency ?. What is an object group ? An object group is a container for a group of obects. because the control block is not the current block. so that you can copy or reference them in another module. 2.

It is the base view that occupies the entire content pane of the window in which it is displayed. 9. set the console window form property to . just under the menubar. What is the relation between windows and Canvas Views ? Canvas-Views are the background objects on which you place the interface items(text items. On some platforms. Each canvas-view is displayed in a window.. 12. Horizontal toolbars are displayed at the top a window. Explain about Stacked Canvas Views ? A stacked canvas view is displayed in a window on top of. scroll. etc.) and boilerplate objects(boxes. What are Modeless Windows ? More than one modeless windows can be displayed at the same time. and are often shown and hidden programmatically. 9.4. What are the Different Modals of Windows ? There are Two different modals of Windows are Modeless Windows Modal Windows 10. Explain about Content Canvas Views Most canvas views are Content-Canvas Views.for example. modeless windows can also be layered to appear either in front of or behind other windows. operators cannot resize. On most GUI platforms.) that operators interact with as they run your form. How do you display console on a window ? The console includes the status line and message line. 7. 6. and operators can navigate among them if your application allows them to do so. Vertical toolbars are displayed along the leftside of a window. radio groups etc.lines.. What are Modal Windows ? Modal windows are usually used as dialogs. 11. and have restricted funtionality compared to modeless windows. set_view_property. Name the functions used to get/set the canvas properties ? get_view_property.images.3 Windows 8. and is displayed at the bottom of the window to which it is assigned. Stacked canvas view obscure some part of the underlying content-canvas view. check boxes. To specify that the console should be displayed. 5. or iconify a modal window. or ??stacked?? on the content canvas view assigned to that same window. Explain about Horizontal/Vertical toolbar Canvas-Views ? Toolbar canvas-views are used to create toolbar for individual windows.

What are the different Window Events activated at Runtime ? When-Window-Activated When-Window_Closed When-Window_Deactivated When_Window_Resized Within these triggers. 15.4 Modules 17. only one of the content canvas-views assigned to a window is displayed at a time. What is the Remove on Exit property ? For a modeless window. To hide the console.EVENT_WINDOW to determine the name of the window for which the trigger fired 9. Can you have more than one content canvas view attached with a window? Yes. it determines whether Oracle Forms hides the window automatically.FMX Form Module Executable 19. and packages that can be called from other modules in the application.MMB Menu Module Binary . Each window you create must have at least one content canvas-view assigned to it.A collection of Menus( a main menu and any number of submenu objects) and menu item commands that together make up an application menu.A collection of user-named procedures.MMX Menu Module Executable . 18. when the operator navigates to an item in another window. 16. 14.the name of any window in the form. What are the default extensions of the files created by Forms Module ? . How many windows in a form can have Console ? Only one window in a form can display the console.functions. What are the different types of Modules available in Oracle Forms ? There are three types of modules in Oralcle Forms : Form Module . set the console window to <Null> 13.FMB Form Module Binary .A collection of objects and code routines Menu Module . you can examine the build-in system variable SYSTEM. Library Module . You can also create a window that has multiple content canvas-views. What are the default extensions of the files created by Menu Module ? . and you cannot change the console assignment at runtime. At runtime.

20.Detail 21.5 Master . Oracle forms navigates internally to the detail block and flushes the obsolete detail records. The relationship between the blocks reflects a primary key to foreign key relationship between the tables on which the blocks are based. the clear phase and the population phase. What are the different default triggers created when Master Deletes Property is set to Cascade? Master Deletes Property Resulting Triggers . 24. During the population phase. What are the two phases of block coordination? There are two phases of block coordination.a master block and a detail block. During the clear phase. What arethe different types of Delete details we can establish in Master-Details? Cascade Isolate Non-Isolate 26. 23.PLL PL/SQL Library Module Binary 9. What is coordination Event? Any event that makes a different record in themaster block the current record is a coordination-causing event. 22. oracle forms issues a SELECT statement to repopulate the details block with the detail records associated with the new master record. What are the default extensions of the files created by Library Module ? . What is Master Detail Relationship ? A Master-detail relationship is an association between two base table blocks . what are most common types of complex master_detail relationship? 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 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 On-Clear-Details On-Populate-Details 27. These operations are accomblished through the execution og triggers.

What is the Deferred with no Auto-Query Coordination of the Master with the Detail block? Deferred with Auto-Query(Deferred True. what is the immediate coordination of the Master with the Detail block? Immediate(Deferred False. 33 . What are the Coordination properties ina master detai relationship? The coordinatio in properties are Deferred Auto-Query These properties determine when the population phase of block coordination should occur.Oracle Forms doesn??t automatically fetch the detail records the operator must navigate to the detail block and explicitly execute a query. 32.Auto-Query true) When a Coordinationcausing events occurs. What are the different default triggers created when Master Deletes Property is set to Isolated? Master Deletes Property Resulting Triggers Isolated On-Clear-Details On-Populate-Details 29. 30.Cascading On-Clear-Details On-Populate-Details Pre-Delete 28. . When a coordination-causing event occurs. What is an Alert? An Alert is a modal Window that displays a message notifying the operator of some application condition.Oracle Forms defers fetching the associated detail records until the operator navigates to the detail block. Auto-Querry False) The default settings.Auto-Query False) When a Coordinationcausing events occurs. What is the deferred with Auto-Quey Coordination of the Master with the Detail block? Deferred with Auto-Query(Deferred True. 34. the detail records are fetched immediately. What are the different types of coordinations of the Master with the Detail block? Coordination of the detail block with its master can be Immediate Deferred with Auto-Query Deferred with the no Auto-Query 31.

including search/replace and cut. 36 . What is the default editor? The default editor provides standard editing features.position. but display a different message each time it is invoked. Changing an alert??s message allows you to reuse the same alert object. rather than the default editor. 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. you can specify that Oracle Forms should use the current system editor. 42 . 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. because it is a named object. What is the User named Editor? A User named Editor has the same text editing functionality has the default editor. what are the different display styles of alert? Find_alert Show_alert 37 . 43 .you can specify editor attributes such as window display size.35.EDIT_TEXTITEM independent of any particular text item. Editors 38 . What are the different types of editors? There are three editors that can be used at run time the default editor. 39 . What is the difference between SHOW_EDITOR and EDIT_TEXTITEM? 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 . a system editor. The default editor is built into every form and is automatically available from every text item. 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. but.and title. What is the System Editor? If there is a system editor available.ALERT_MESSAGE_TEXT. 41 . Example Set_Alert_Property(alert_id. 40.copy and paste.or a user-named editor.??The product you selected is not in stock??).

What is the ??LOV for validation?? Property of an item? What is the use of it? When LOV for validation is set to true. the processing continues normally. 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. unlike database tables. 47.Oracle Forms displays the LOV and uses the text item value as the search criteria to automatically reduce the list. What are the built-ins that are used for setting the LOV properties at runtime? get_lov_property set_lov_property Record Groups 49. 45. . If the value in the text item matches one of the values in the first column of the LOV. 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. What are the built-ins that are used to attach an LOV programatically to an item? Set_item_property Get_item_property (by setting the LOV_NAMEproperty) 48. What is the basic data structure that is required for creating an LOV? Record Group 46. If the value in the text item doesn??t match one of the values in the first column of the LOV.input focus to be in the textitem before the built_in is executed.The LOV is not displayed.record groups are separate objects that bekong to the form module in which they are defined. What is an LOV? An LOV is a scrollable popup window that provides the operator with either a single or multi-column selection list. LOV(List Of Values) 44. Validation succeeds . However. What are the built-ins used to display the LOV? Show_lov list_values 47.

52.but whose structures can be modified programatically at runtime. you define its structure and row values at design time. The columns in a query record group derive their default names.datatypes and lengths from the database columns referenced in the SELECT statement. What is the maximum allowed length of a Record Group Column? Record group column names cannot exceed 30 characters. The records in a query record group are the rows retreived by the query associated with that record group. What are the built-ins used for creating and deleting groups? CREATE_GROUP(function) CREATE_GROUP_FROM_QUERY(function) DELETE_GROUP(Procedure) 57. 56 . and they remain fixed at runtime.NUMBER. What are the built-ins used for modifying a group structure? ADD_GROUP_COLUMN(function) ADD_GROUP_ROW(Procedure) DELETE_GROUP_ROW(Procedure) POPULATE_GROUP(function) POPULATE_GROUP_WITH_QUERY(function) SET_GROUP_CHAR_CELL(Procedure) SET_GROUP_DATE_CELL(Procedure) SET_GROUP_NUMBER_CELL(Procedure) 58 .rather. What is a Static Record Group? A Static record group is not associated with a query. How many number of columns a record group can have? A record group can have an ultimate number of columns of type CHAR.LONG. 55. 51 . What is a Non Query Record Group? A non-query record group is a group that does not have an associated query.50. What are the built-ins used for getting cell values? . What are the different types of Record Group? Query Record Groups NonQuery Record Groups Static Record Groups 53. 54 . and DATE provided that the total number of columns does not exceed 64k. What is a Query Record Group? A Query record is a record group that has an associated SELECTstatement.

65 .OPEN_FORM. What are the Built-ins used for sending Parameters to forms? You can pass parameter values to a form when an application executes the CALL_FORM. Number parameters default to 23 bytes and DATE parameters default to 7 bytes.NUMBER. 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. Use the Add_Group_row procedure to add a row to a static record group. What are the built-ins used for finding Object ID functions? FIND_GROUP(function) FIND_COLUMN(function) 61. Form parameters are variables of type CHAR. or DATE that you define at design time. How do you call other ORACLE products from Oracle Forms? .(1)True (2) False False PARAMETERS 63.or RUN_PRODUCT.NEW_FORM. Use the ADD_GROUP_COLUMN function to add a column to a record group that was created at design time (1) True (2) False. which can be up to 64k. 64 . 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. False 62. 66 .GET_GROUP_CHAR_CELL(function) GET_GROUP_DATE_CELL(function) GET_GROUP_NUMBER_CELL(function) 59 . What are the built-ins used for processing rows? GET_GROUP_ROW_COUNT(function) GET_GROUP_SELECTION(function) GET_GROUP_SELECTION(function) RESET_GROUP_SELECTION(Procedure) SET_GROUP_SELECTION(Procedure) UNSET_GROUP_SELECTION(Procedure) 60.

image items can be either base table items (items that relate directly to database columns) or control items. 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. Example: Name_In(??PARAMETER. . Data paremeters are used to pass data to products invoked with the RUN_PRODUCT built-in subprogram.my_param??) Copy(??SURESH??.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. What are the different types of images? BoilerPlate Images Image Items 73 . Can you pass data parameters to forms? No.??PARAMETER>my_param??) 69 . 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. What are the difference Parameter Types? Text Parameters Data Parameters 70 . How do you reference a Parameter? In PL/SQL. or :block.item=PARAMETER.parameter_name. such as company logos and maps. Like other items that store values. 71 . If the called product is unavailable at the time of calkl. Image ItemsImage items are special types of interfaace controls that store and display either vector or bitmaps images. 67. Example :PARAMETER. 68 . Images 72.parameter_name=??VIKRAM??. Oracle Forms returns a message to the operator. 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. you can reference and set the values of form parameters using bind variable syntax.

MOUSE_BUTTON_SHIFT_STATE SYSTEM. Any attempt to navigate programatically to a disabled form in a call form stack is allowed FALSE 78 .SESSION). State any three mouse event System Variables? SYSTEM.ACTIVE.FMX files.mouse up. .FMB and . 74 . An open form cannot execute the CALL_FORM procedure if a chain of called forms has been initiated by another open form TRUE 79. How do you create a new session while opening a new form? Using OPEN_FORM built-in setting the SESSION option. 81 . When you invoke multiple forms with OPEN_FORM and CALL_FORM in the Same application.state whether the following are TRUE or FALSE 77 .The definiton of an image item is storred as part of the form module. does Oracle Forms issues a savepoint? TRUE/FALSE TRUE 80.MOUSE_ITEM . What are the various subevents a mouse double click event invokes? Double_clicking the mouse consists of the mouse down.mouse click. Ex: OPEN_FORM(??STOCKS??. What is the use of IMAGE_ZOOM built_in? You can use the IMAGE_ZOOM built-in subprogram to manipulate images in image items.mouse down and mouse up events. Working with Multiple Forms 76.MOUSE_BUTTON_PRESSED SYSTEM. but no image file is actually assciated with an image item until the item is populated at runtime. When a form is invoked with CALL_FORM. What are the triggers associated with the image items? The Following triggers are available for responding programatically to image items events When-Image-Activated First when the operator double-clicks on a image item When-Image_Pressed Fires when an operator clicks or double-clicks on an image item 75.

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.display and manipulate objects that are created by OLE server applications. Example: Oracle Forms is an example of an OLE container 84. Creating integrated applications enables you to use the features from several MS Windows application. 86. Can a Property class itself be based on a property class? Yes 88 . What is a Property Class? A Property class is a named object that contains a list of properties and their settings. 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. An object based on a property class inherit the setting of any property in the class that makes sense for that object. OLE containers provide a place to store. 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.color and pattern properties that you set for form and menu objects that appear in your application??s interface. Once you create a property class you can base other objects on it. 87 . You can change the appearance of objects at runtime by changing the named visual attribute programmatically.MOUSE_RECORD OLE 82. Property class assignment cannot be changed . What are Visual attributes? Visual attributes are the font.SYSTEM. What are the different styles of Activation of OLE objects? In-place Activation External Activation Visual Attributes And Property Classes 85. 83.color and pattern attributes .MOUSE_CANVAS SYSTEM. Examples of OLE servers are MS Word and MS Excel. property classes can contain these and any other properties.

Forms Built-ins 89. the named visual attribute settings settings take precedence. and after the operator attempts to navigate out of the item. What is SYNCHRONIZE? Synchronizes the terminal screen with the internal state of the form. That is. What is SYSTEM. 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. 95. What is WHEN-DATABASE-RECORDN Trigger? Fires when Oracle Forms first marks a record as an insert or an update. 91. 90. What is a TEXT_IO package? The Text_IO package allows you to read and write information to a file in the file system. That is SYNCHRONIZE updates the screen display to reflect the information that Oracle Forms has in its internal representation of the screen. 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.programmatically When an object is inheriting from both a property class and a named visual attribute.COORDINATION_OPERATION represents the coordination causing event that occureson the master block in master detail relationship.Cooordination_Operation= . Triggers 92.COORDINATION_OPERATION? SYSTEM. What is the difference between $$DATE$$ and $$DBDATE$$? $$$$DBDATE$$ retrieves the current database date DBDATE$$ retrieves the current operating system date. This generally occurs only when the operator modifies the first item in a record. 93. What are Master_Detail Triggers? ON_CHECK_DELETE_MASTER ON_CLEAR_DETAILS ON_POPULATE_DETAILS System Variables 94. and any visual attribute properties in the class are ignored. Example: System.

Calling NEW_FORM completely replaces the first form with the second. What are the different display styles of List item? Poplist Text list Combo box. When The operator selects the list icon. the operator will be prompted to save them before the new form is loaded.Miscelleneous 96. 102. a list of available choices appears. 97. the first form remains displayed. the called form is modal with respect to the calling form. What is a Combo Box? The Combo Box style list item combines the features found in list and text items. Oracle Forms exists the first form and releases its memeory before loading the new form. What is a Text list? The text list style item appears as a rectangular box which displays a fixed number of values. . 98 . What are the differences between LOV and List item? LOV is a Property whereas List item is an item. When one form invokes another form by executing CALL_FORM. 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. and operators can navigate between the forms as desires. 100. That is. the combo box style list item will both display fixed values and accept one operator-entered values. 101. When the text list contains values that cannot be displayed(due to the display area of the item). 99 . a vertical scroll bar appears. any windowa that belong to the calling form are disabled and operators cannot navigate to them until they first exit the called form. What is a Poplist? The poplist style list item appears initially as a single field(similar to a text item field. What is the difference between OPEN_FORM AND CALL_FORM? when one form invokes another form by executing OPEN_FORM. What is NEW_FORM built-in? When one form invokes another form by executing New_form. Unlike the poplist or the text list style list items. If there are changes pending in the first form. 103. A List item can have only one column whereas an LOV can have one or more columns. Display items are generally used asa boilerplate or as conditional text. allowing the operator to view and select undisplayed values.

what is a Library? A library is a collection of subprograms. What are the built-ins associated with timers? FIND_TIMER CREATE_TIMER DELETE_TIMER 110.menu or library . Then. a library??s program units are loaded into an application only when needed.program units in the first library can reference program units in the attached library. This can significantly reduce the runtime memory requirements of an application. but cannot be subsequently edited in the designer.pll userid=scott/tiger Strip_source=YES output_file=<new_file_name> 107.104. after the database commit occurs. What are the advantages of libraries? Libraries provide a convenient means of storing client-side program units and sharing them among multiple applications. The controls can be used to obtain user input and display program output. 108. The Post-Forms-Commit trigger fires after inserts. The resulting file can be used for final deployment. 109.module. menu item commands and user-named routines you write in the modules to which modules to which you have attached the library.named procedures. VBX controls were originally developed as extensions for the MS Visual Basic environment and include such items as sliders. but before the transaction has been . Libraries support dynamic loading-that is. What is the difference between POST-DATABASE-COMMIT and POST-FORM-COMMIT? POST-FORM-COMMIT fires once during the Post and Commit Transactions process. Once you create a library. you can call library units from triggers. 105. What is a Timer? A timer is an ??internal time clock?? that you programatically create to perform an action each time the timer expires. When a library attaches another library.grids and knobs.you can attach it to any other form. Example:f45gen module=old_lib. updates and deletes have been posted to the database. 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. What is a STRIP_SOURCE generate option? Removes the source code from the library file and generates a library file that contains only pcode. 106.functions and packages. including user.

What is the use of the Transactional Triggers? Using Transactional triggers we can control or modify the default functionality of the Oracle Forms. after the operator has defined the example record by entering query criteria in Enter Query Mode. The Visual view hierarchy corresponds to the hierarchy of objects in a form window: window--canvas-view--item. Module Preference : File. Database. canvas-views are assigned to windows. Only objects with PL/SQL option displays only code objects . and there is a PL/SQL engine in both Oracle Forms Runform and the Oracle7 Server. What is the difference between PRE-SELECT and PREQUERY? Fires during Execute Query and Count Query processing. This means that you can take advantage of application partitioning to execute application code on either the client or the server. The Pre-Query trigger fires just before Oracle Forms issues the SELECT statement to the database. and items are displayed. Items are assigned to canvas-views. Items and relations are owned by blocks. all form objects are visible. canvas-views. menus. blocks are owned by forms. editors. but before the statement is actually issued. Application partitioning allows you to optimize performance and resource usage by storing and executing procedures either locally or at the server. or packages. Application Partitioning : PL/SQL engine is available on both PL/SQL is the language used for both client-side Oracle Forms applications and server-side database triggers and stored procedures. File/Database(Filter dialog) Default font scaling off : ignores the runtime font. record groups. all other form objects (windows.) are owned by forms. Pre-Query trigger fires before Pre-Select trigger. Navigator Views : Ownership View : In the ownership view. 112. or items. functions. blocks. and the display hierarchy corresponds to the Oracle Forms object ownership hierarchy: form--block-item. can be defined in forms. whichever makes the most sense for your particular application and configuration. and there can be multiple items on a single canvas-view. Visual View : In the Visual view. triggers can be owned by forms. or library modules.5 NOTES Program units : User-named procedures. 111. The Post-Database-Commit Trigger fires after Oracle Forms issues the Commit to finalize the transaction. only windows.fibalized by issuing the commit. etc. and scales objects according to the size of the default design time font. What is the trigger associated with the TIMER? WHEN-TIMER-EXPIRED 113. after Oracle Forms constructs the SELECT statement to be issued. on :scales objects according to the size of the default runtime font. Each window can have multiple canvas-views. ORACLE FORMS 4.

property classes can contain these and any other properties. Internal processing events Overview of Trigger Categories This section provides an overview of commonly used triggers. You define an object group when you want to package related objects so you can copy or reference them in another module. Custom Visual attributes : design time specification Named visual attributes : specifies that the object should use the attribute settings defined for the named visual attribute Property class can contain other property classes. and pattern attributes.Default Visual attributes : specifies that that the object should be displayed with default color. gives dialog options for associated objects. the individual attribute settings reflect the current system defaults. Inherit property : inherits from property class. When an object is inheriting from both a property class and a named visual attribute. property class assignment cannot be changed programmatically. When Visual Attribute Name is set to Default. grouped into the following functional categories: o block-processing triggers o interface event triggers o master-detail triggers o message-handling triggers o navigational triggers o query-time triggers o transactional triggers o validation triggers When-Event Triggers : A When-event signals a point at which you can augment Oracle Forms default processing with additional tasks or operations. the named visual attribute settings take precedence. On-Event Triggers : An On-event signals a point at which you can replace Oracle Forms default processing. and font settings. Members of object groups should be defined in the same form. Variant property : defined separetely in the property window. Pre-Event Triggers : A Pre-event signals a point just prior to the occurrence of either a . Object groups provide a way to bundle objects into higher-level building blocks that can be used in other parts of an application and in subsequent development projects. pattern. Property class Vs. Object groups cannot contain other object groups. color. it has to be updated for all referencing objects in the reference source information property. Copy object option : automatically copies objects owned by the item being copied. Named visual attributes : Named visual attributes define only font. and any visual attribute properties in the class are ignored. Object groups : An object group is a container for a group of objects. copying a reference object results in referencing only In referencing when the source object name changes. Events : Interface events. You can change the appearance of objects at runtime by changing the named visual attribute programmatically.

Oracle Forms issues a SELECT statement to repopulate the detail block with the detail records associated with the new master record. and Prevent Masterless Operation. Master-Detail Relationships : Block Coordination To maintain the master-detail relationship at runtime. Prevents the deletion of a master record if associated detail records exist in the database. the Copy Value from Item property is set on two or more foreign key items in the detail block. Oracle Forms generates the triggers and PL/SQL procedures required to enforce coordination between the master and detail blocks. When such an event occurs. The Relation Object When you create a relation. During the population phase. The actual code that Oracle Forms generates depends on how the properties of the relation are set. Master Deletes Property: The Master Deletes property allows you to specify how the deletion of a record in the master block should affect records in the detail block. When relations are nested to .When-event or an On-event. it is automatically incorporated in the WHERE clause of the SELECT statement that Oracle Forms issues to populate the detail block. Any event that makes a different record in the master block the current record is a coordination-causing event. The Copy Value from Item Property The mechanism that Oracle Forms used to coordinate the population of the detail block with the current record in the master block is the Copy Value from Item property on the foreign key item in the detail block. Oracle Forms navigates internally to the detail block and flushes the obsolete detail records. Oracle Forms coordinates the master and detail blocks to ensure that the records displayed in the detail block are associated with the current record in the master block. or Cascading. Non-Isolated : The default setting. Cascading: Allows the master record to be deleted and automatically deletes any associated detail records from the base table at commit time. the trigger fires when the operator presses a specific key or key-sequence. Isolated : Allows the master record to be deleted and does not affect the associated detail records in the database. Because the value of the primary key item in the master record gets copied to the foreign key item in the detail block. These operations are accomplished through the execution of triggers. The Copy Value from Item property specifies the primary key item in the master block whose value gets copied to the foreign key item in the detail block whenever a detail record is created or queried. During the clear phase. Isolated. Post-Event Triggers : A Post-event signals a point just following the occurrence of either a When-event or an On-event. There are two phases of block coordination: the clear phase and the population phase. Deleting a record or pressing [[Up]] or [[Down]] to move to a different record are both examples of coordination-causing events. Key Triggers : Key triggers have a one-to-one relationship with specific keys. Oracle Forms automatically does the processing necessary to coordinate the master and detail blocks. It can be set to Non-Isolated. When blocks are related through a compound join. Coordination. The properties that affect the functionality of a relation include Master Deletes. That is.

Setting the Properties of Foreign Key Items in the Detail Block When you create a relation. Auto-Query False) when the detail block is visible to the operator. Note: If your database is using the ORACLE7 Server cascading deletes feature. the value stored in the primary key item in the master block is copied to the foreign key item in the detail block whenever a detail record is created or queried. That is. Coordination Properties : The Coordination properties Deferred and Auto-Query determine when the population phase of block coordination should occur. When you create the relation in the New Block window. The Copy Value from Item property specifies the name of the corresponding primary key item in the format master_block. choose immediate coordination (Deferred False.several levels. As a general rule. At runtime. Oracle Forms sets the Copy Value from Item property on the foreign key items in the detail block automatically. Coordination of the detail block with its master can be Immediate. Auto-Query False) When a coordinationcausing event occurs. when the operator must navigate to the detail block in a different window to be able to view detail records. Deferred with No Auto-query (Deferred True. do not use the Cascading deletes option in Oracle Forms. Deferred coordination with No Auto-query is useful when you want operators to be able to go into Enter Query mode and specify additional query criteria in the detail block before population occurs." That is. the operator must navigate to the detail block and explicitly execute a query. Deferred with Auto-Query (Deferred True. Choosing the Appropriate Coordination Deferred coordination can more accurately be thought of as "deferred population. Deferred coordination with No Auto-query allows operators to navigate through detail records without forcing coordination. and when it is assumed that the operator will always want to see the detail records associated with the current master record. deletions do not automatically cascade to multiple levels of a relation chain. This functionality prevents a detail block from displaying records that are inconsistent with the current record in the master block. When a coordinationcausing event occurs. Oracle Forms defers fetching the associated detail records until the operator navigates to the detail block. Deferred coordination with Auto-query is preferable when the detail block is not immediately visible. the detail records are fetched immediately. Auto-Query True)When a coordinationcausing event occurs. to occur until it is actually required. or Deferred with No Auto-query. Immediate (Deferred False. for example. the population phase of coordination is postponed. but the records in the detail block are cleared immediately. Oracle Forms also alters the . Deferred coordination is also useful in situations where the operator may not need to view the detail records at all. and its attendant processing. only records in the immediate detail block are deleted. To fetch the detail records. In this case. deferring coordination can prevent an unnecessary database query.item_name. Also. Auto-Query False) The default setting. when a coordination-causing event occurs in the master block. Oracle Forms does not automatically fetch the detail records. Deferred with Auto-query.

. The purpose of these settings is to hide the foreign key item(s) from the operator. If you do so. o setting the following properties to False: o Displayed o Enabled o Navigable o Query Allowed o Update Allowed o sequencing items in the Navigator such that the foreign key items are last in the block's navigation sequence Also. so that operators cannot edit the foreign key value and thus disrupt master-detail coordination. Oracle Forms does not create a boilerplate text label for the foreign key items. When you create a relation in the Object Navigator. The following table shows what happens when you delete a relation or an object that is part of a relation: If you delete. If operators cannot see the master block when viewing detail records.the relevant detail section from the details relation. On-Clear-Details trigger and.. Oracle Forms deletes all of the master-detail triggers that were attached to the relation's master block and clears the Copy Value from Item property of the foreign key item(s) in the detail block. A detail block in a Oracle Forms deletes the relation. Deleting a Relation You can delete a relation by selecting it in the Object Navigator and choosing Navigator>Delete. you may want to undo these settings so that foreign key item(s) are visible to the operator.. you might want to set these same properties yourself. This is the result. rather than in the New Block window. and removes master-with-independent. These settings are most appropriate when operators can view both the master and detail blocks at the same time. -----------------------------------------------------------------------------------------------------A relation.. Oracle Forms does not delete the master-detail procedures. Any comments or code that you added in this section are removed also. if present. make sure that the item Update Allowed property is set to False. The master or detail block Oracle Forms deletes the relation and all of the in a relation.properties of the foreign key item(s) in the detail block by doing the following: o setting the Canvas property to NULL to make the item a NULL-canvas item.master-detail triggers. if the relation was created in the New Block window. since the same information is likely to be displayed in the primary key item(s) in the detail block.. the On-Populate-Details trigger.

) Preventing Navigation to the Detail Block Setting the Prevent Masterless Operation property to True prevents operators from querying and inserting in a detail block for which there is no corresponding master record. it may be desirable to disallow any attempt to navigate to a detail block when there is no master record. however. Any attempt to query generates error FRM-41106: Cannot query records without a parent record. Although the foreign key item in recommended) the detail block can be hidden by making it a NULL-canvas item. Setting this property to True has the following effects: Oracle Forms does not allow records to be inserted in the detail block when there is no master record in the master block. it cannot be deleted entirely.The foreign key item in a The master-detail block coordination will be detail block. When-New-Block-Instance trigger on detail block warehouse: DECLARE alert_dummy NUMBER. disrupts master-detail block coordination. (This assumes that the foreign key item(s) in the detail block are not displayed. Preventing Masterless Operations in the Detail Block It is often desirable to prevent operators from peforming masterless operations in a detail block. BEGIN . Oracle Forms does not allow querying in the detail block when there is no master record that came from the database in the master block. Doing so. Such an error occurs when the detail block derives the value of its foreign-key items from the primary key items in the master record (by way of the Copy Value from Item property). Any attempt to insert a record generates error FRM41105: Cannot create records without a parent record. but it does not prevent them from navigating to the detail block and attempting these operations. In some applications. but they cannot determine which master records own them. recommended). that is. Any master-detail trigger Oracle Forms does not prevent you from or procedure. you might want to prevent masterless queries in a detail block because operators cannot perform effective queries from the detail block. to prevent them from querying or inserting records in the detail block when there is no current record in the master block. Operators can query the existence of specific detail records. (Not deleting a master-detail trigger or procedure. The following example shows one way to prevent operators from navigating to a detail block for which there is no master. Similarly. (Not disrupted. It is based on the detail block warehouse and the master block region. You can set the Prevent Masterless Operation property to True to prevent operators from performing masterless operations in the detail block of the relation. It is usually appropriate to prevent masterless inserts when operators are likely to encounter an error if they attempt to commit detail records that have been created independently of a master record.

(The function GET_BLOCK_PROPERTY is nested as the first argument to GET_RECORD_PROPERTY to return the record number of the current record in the region block. simply define as many individual relations as needed. Thus. any block can be the master or detail in more than one relation. Further. END. and a block that is the master in one relation can be the detail in another./* ** See if there is a master record by checking the status ** of the current record in the master block */ IF Get_Record_Property(Get_Block_Property('region'.) If the status of the current record is NEW.region_id IS NULL THEN /* ** There isn't a master record.'region'. . Creating Complex Master-Detail Relationships Many applications require complex master-detail relationships that involve more than two blocks. Oracle Forms automatically adjusts the existing triggers to manage the relations you define. Oracle Forms displays an alert window with the message "Query or enter a master record before moving to the detail block. in a complex master-detail relationship involving relations between blocks A and B (A_B). /* ** Put the input focus in the master block */ GO_BLOCK('region'). STATUS) = 'NEW' OR :region. END IF. When you create complex master-detail relationships. current_record). There is no practical limit to the number of relations that can be defined in a form." The trigger then navigates to the master block to allow the operator to do just that. indicating that the record is not an existing master record. be aware that deletes are enforced only for the immediate detail block in the relation. To create such relationships. This topic describes three of the most common types of complex master-detail relationships: o master with dependent details o master with independent details o detail with two masters Complex Relations and Cascading Deletes When you set the Master Deletes property of a relation to Cascading. The When-New-Block-Instance trigger fires whenever the operator navigates to the detail block. display an alert that tells the ** operator to query or enter a region record before moving to ** the warehouse block */ alert_dummy := SHOW_ALERT('my_alert'). The built-in function GET_RECORD_PROPERTY is used to determine the status of the current record in the master block.

if relation A_B is cascading. Oracle Forms displays the appropriate detail records for whichever master block is the current block in the form. For example. Thus. However. such that the first detail block is itself a master for its own detail block. in the sample application referred to earlier. The operator could then see all of the warehouses and customers within the currently selected region. Detail with Two Masters A detail with two masters relationship involves a single detail block that has two master blocks. the master block region could be displayed along with the detail blocks warehouse and customer. 'detail_block. Usually. define the individual relations A_B and A_C separately. consider the effect of the Master Deletes and Coordination properties on the detail blocks. Depending on the desired functionality. You might also want to create a When-New-Block-Instance trigger that checks the .primary_key_item'). when relation A_B is deferred and relation B_C is immediate. this might include writing a Pre-Query trigger for the detail block to ensure that the correct primary key item value is copied to the foreign key item in the detail block. however. To create a master with dependent details relationship. To create this type of relationship. all subsequent blocks will also be deferred. define the individual relations A_B and B_C separately. For example. when you create a detail with two masters relationship. Master with Dependent Details A master with dependent details relationship includes a master block and n levels of detail blocks.and B and C (B_C). because the Copy Value from Item property can only point to one master block item. you will be joining on different foreign key items in the detail block. the Copy Value from Item property is set for each foreign key item in the detail block to point to the primary key item in the appropriate master block. For example. and Oracle Forms will automatically support coordination.item'). customer and emp. you will need to write additional code to coordinate querying and updating for the second relation if you are joining on the same item in the detail block. When you create this type of relationship. or for a particular sales representative (employee). The relations can be created in any order. you might want to create a master with two details with each relationship joining on the same foreign key item in the detail block. In other cases. Copy(name_in(:System. To create this type of relationship. The relations can be created in any order. A coordination-causing event in the master block results in both detail blocks being populated with the appropriate detail records. each of which has the same master block. the ord block could be a detail block having two master blocks. The operator could then see all of the orders for a particular customer. the detail records in Block C are not automatically deleted unless Relation B_C is also cascading. if one relation in a chain of related blocks is set to deferred coordination. Master with Independent Details A master with independent details relationship involves two or more detail blocks. Oracle Forms does not coordinate Block C with Block B until Block B is coordinated with Block A. This structure is useful when you want to display more than one set of detail records for a single master record. In the sample application. In such cases. you need only define the two relations.Master_Block||'.

Oracle Forms also creates user-named procedures that are called by master-detail triggers. --. Oracle Forms adds or removes triggers as needed. Comments are denoted by the standard PL/SQL double-hyphen ('. as shown in the following example trigger text: -." About Master-Detail Triggers and Procedures When you create a relation. populates the detail block.Begin default relation program section -Clear_All_Master_Details. When you change the setting of the Master Deletes property for an existing relation. The trigger queries the database to see if detail records exist for the master record. This trigger calls the CLEAR_ALL_MASTER_DETAILS procedure. if necessary. It fires when there is an attempt to delete a master record.coordination status of the detail block whenever the operator navigates to a different master block. and may look somewhat different. Oracle Forms generates different triggers depending on how the Master Deletes and Coordination properties are set. refer to "Modifying the Default Master-Detail Functionality. For more information on triggers and built-ins available for customizing master-detail functionality. and. the trigger deletes the master record. and clears all of the detail records in the detail block. The example trigger text shown with each trigger description shows the basic structure of the trigger. On-Clear-Details Trigger The On-Clear-Details trigger is required for all master-detail relations. The following table shows how the Master Deletes property determines which triggers Oracle Forms creates. The actual trigger text that you will see in your own forms will be application-specific.End default relation program section -On-Check-Delete-Master Trigger Oracle Forms creates the On-Check-Delete-Master trigger when the Master Deletes property is set to Non-Isolated.-'). If . and on whether the relation is part of a complex relation chain. The actual code in these triggers depends on how the Coordination properties are set. Oracle Forms generates comments in the default trigger and procedure code. It fires during the clear phase of coordination. Master Deletes Property Resulting Triggers ----------------------------------------------------------------------------------------------------Non-Isolated (the default) On-Check-Delete-Master On-Clear-Details On-Populate-Details Cascading On-Clear-Details On-Populate-Details Pre-Delete Isolated On-Clear-Details On-Populate-Details Master-Detail Triggers This section describes the triggers that Oracle Forms creates when you define a masterdetail relationship. If no details exist.

then navigates to the detail block to issue the appropriate query.End default relation declare section ---. end if.End B detail program section -End.').Begin default relation declare section -Declare Dummy_Define char(1). Fetch B_cur into Dummy_Define.Begin B detail declare section -cursor B_cur is select null from MASDET where PARENT = :A." as shown in the following example trigger text: -. --.ID.Begin B detail program section -Open B_cur. raise Form_Trigger_Failure.detail records are found. This .End B detail declare section ---. --. the trigger displays the message "Cannot delete master record when matching detail records exist. --. Close B_cur. --.The trigger first checks the status of the master record and the value of its primary key field. if ( B_cur%found ) then Message('Cannot delete master record when matching detail records exist. It fires during the population phase of block coordination.End default relation program section On-Populate-Details Trigger Oracle Forms creates the On-Populate-Details trigger for every master-detail relation. Close B_cur.Begin default relation program section -Begin --.

cursor_item.Begin detail_block detail program section -DELETE FROM detail_block_base_table WHERE foreign_key_column = :master_block. --.Begin default relation program section -Begin if ( recstat = 'NEW' or recstat = 'INSERT' ) then return.AB'). start_item char(61) := :system. end if. --.End detail_block detail program section -END.End default relation declare section --.Begin B detail program section -if ((:A. 'B'). relation_id relation.ID is not null)) then relation_id := find_relation('A. It deletes the records in the detail block's base table that correspond to the master record that is being deleted.trigger calls the QUERY_MASTER_DETAILS procedure.Begin default relation program section -BEGIN --. Pre-Delete Trigger Oracle Forms creates the Pre-Delete trigger when the Master Deletes property is set to Cascading. end if. --. as shown in the following example trigger text: -. --. -.record_status.Begin default relation declare section -Declare recstat char(20) := :system.primary_key_item. --.End B detail program section ---End. Query_Master_Details(relation_id.End default relation program section Master-Detail Procedures .

/* ** If this block has changes.STATUS) IN ('CHANGED'. /* Initial Master Block Causing Coord */ coordop CHAR(30). These procedures are called from the masterdetail triggers or from other procedures. currel :=Get_Block_Property(curblk. recursively look for changed blocks below */ ELSE retblk := First_Changed_Block_Below(curblk). /* ** Otherwise. /* ** While there exists another relation for this block */ WHILE currel IS NOT NULL LOOP /* ** Get the name of the detail block */ curblk := Get_Relation_Property(currel. /* Current Block */ currel CHAR(30). /* ** If some block below is changed. /* Item in which cursor started */ frmstat CHAR(15). /* Current Block */ currel CHAR(30). /* Current Relation */ retblk CHAR(30).DETAIL_NAME). PROCEDURE Clear_All_Master_Details IS mastblk CHAR(30). /* Operation Causing the Coord */ trigblk CHAR(30). return its name */ IF Get_Block_Property(curblk. /* Current Relation */ curdtl CHAR(30). return its name . It navigates to the detail block and clears the detail records. CLEAR_ALL_MASTER_DETAILS Procedure This procedure is called by the OnClear-Details trigger.'INSERT') THEN RETURN curblk. /* Form Status */ curblk CHAR(30). /* Cur Block On-Clear-Details Fires On*/ startitm CHAR(61). /* Return Block */ BEGIN /* ** Init Local Vars */ curblk := Master. /* Current Detail Block */ FUNCTION First_Changed_Block_Below( Master CHAR ) RETURN CHAR IS curblk CHAR(30).FIRST_MASTER_RELATION).This section shows the text of the master-detail procedures that Oracle Forms creates automatically when you define a relation.

/* ** If we find a changed block below. /* ** If the coord op is anything but CLEAR_RECORD. go there ** and Ask to commit the changes. then ** continue checking.. END LOOP. BEGIN /* ** Init Local Vars */ mastblk := :System. startitm := :System. END IF. END First_Changed_Block_Below. Consider the next relation */ ELSE currel := Get_Relation_Property (currel.Master_Block. */ IF coordop <> 'CLEAR_RECORD' THEN /* ** If we're processing the driving master block. NEXT_MASTER_RELATION). trigblk := :System. no changed blocks were found */ RETURN NULL. END IF. coordop := :System..Coordination_Operation. /* ** Otherwise. /* ** If we get here. */ IF mastblk = trigblk THEN /* ** If something in the form is changed. find the ** first changed block below the master */ IF frmstat = 'CHANGED' THEN curblk := First_Changed_Block_Below(mastblk). frmstat := :System.*/ IF retblk IS NOT NULL THEN RETURN retblk. */ IF curblk IS NOT NULL THEN .Form_Status.Trigger_Item.Trigger_Block.

FIRST_MASTER_RELATION). END IF. /* ** If user cancels commit dialog. QUERY_MASTER_DETAILS Procedure This procedure is called from the On- .Block_Status = 'NEW' /* No */ ) THEN RAISE Form_Trigger_Failure. END IF. /* ** Put cursor back where it started */ IF ( :System. raise error */ IF NOT( :System. /* ** Clear all the detail blocks for this master without ** any further asking to commit. END IF.Block_Status <> 'NEW' ) THEN RAISE Form_Trigger_Failure. END Clear_All_Master_Details. END IF. WHILE currel IS NOT NULL LOOP curdtl := Get_Relation_Property(currel.DETAIL_NAME). */ currel := Get_Block_Property(trigblk. END IF. Check_Package_Failure. Clear_Block(ASK_COMMIT).Go_Block(curblk). END LOOP. Check_Package_Failure. STATUS) <> 'NEW' ) THEN Go_Block(curdtl).Form_Status = 'QUERY' /* Yes */ OR :System. currel := Get_Relation_Property(currel. END IF.Cursor_Item <> startitm THEN Go_Item(startitm). END IF. RAISE. EXCEPTION WHEN Form_Trigger_Failure THEN IF :System.NEXT_MASTER_RELATION). END IF. IF ( Get_Block_Property(curdtl. IF ( :System. Clear_Block(NO_VALIDATE). END IF.Cursor_Item <> startitm ) THEN Go_Item(startitm).

*/ IF reldef = 'FALSE' THEN Go_Block(detail). END IF.Message_Level := '5'. It navigates to the detail block and then executes a query to fetch the appropriate detail records. :System. detail CHAR) IS oldmsg CHAR(2). /* Old Message Level Setting */ reldef CHAR(5). :System. NON_COORDINATED). EXCEPTION WHEN Form_Trigger_Failure THEN :System. oldmsg := :System. It checks to see if the previous statement executed successfully by looking at the status of the built-in Oracle Forms error variable FORM_SUCCESS.Populate-Details trigger. Mark the detail block as un-coordinated */ ELSE Set_Block_Property(detail. RAISE. END IF. Goto detail & execute the query. .Message_Level. DEFERRED_COORDINATION). /* ** If Deferred.Message_Level := oldmsg. CHECK_PACKAGE_FAILURE Procedure This procedure is called by the CLEAR_ALL_MASTER_DETAILS and QUERY_MASTER_DETAILS procedures. Execute_Query.Message_Level := oldmsg. PROCEDURE Query_Master_Details(rel_id Relation. /* Relation Deferred Setting */ BEGIN /* ** Initialize Local Variable(s) */ reldef := Get_Relation_Property(rel_id. /* ** If NOT Deferred. Check_Package_Failure. END Query_Master_Details. coordination_status. END. PROCEDURE Check_Package_Failure IS BEGIN IF (NOT Form_Success) THEN RAISE Form_Trigger_Failure.

The following examples illustrate how Oracle Forms adds or edits triggers as required. . Oracle Forms creates the following triggers on the master block to manage the relation: o On-Clear-Details o On-Check-Delete-Master o On-Populate-Details If you then create a second relation A_C (having the same master block but a different detail block).End second_detail_block program section -/* final trigger text */ END. To manage this relationship. one master block with two detail blocks. Oracle Forms does not create any additional triggers.Triggers for Complex Master-Detail Relations When you create a complex master-detail relationship. you have created a master-with-independent-details relationship.Begin second_detail_block program section -/* trigger text to clear the second detail block*/ --. For example. with Master Deletes set to Non-Isolated and Coordination set to Immediate (default settings). -. Example 1: Master with Independent Details Consider a single relation A_B.Begin default relation program section BEGIN --. Instead.End first_detail_block program section ---. Oracle Forms adds a section to each existing trigger to facilitate clearing and populating the second detail block. The generated comments in these triggers delimit the sections that manage each detail block. that is.Begin first_detail_block program section -/* trigger text to clear the first detail block*/ --. Oracle Forms adds or edits the existing master-detail triggers to support the relationship you have defined. the simple relation A_B is extended by adding a second relation B_C to create a master with dependent details relationship.End default relation program section -Example 2: Master with Dependent Details In this example. the comments in the On-PopulateDetails trigger clearly show where each detail block section begins and ends: -.

To manage the second relation B_C. Vol.) Modifying the Default Master-Detail Functionality In special situations. Remember. changing a relation's Master Deletes property from Cascading to Isolated causes Oracle Forms to remove the now unnecessary Pre-Delete trigger. Consider the following points when you edit master-detail triggers: o Do not alter or delete the comments that Oracle Forms generates. o If you add code to a trigger. however. These comments tell Oracle Forms where to insert or delete trigger text when changes are necessary. 1. refer to the Oracle Forms Reference Manual. and creates two additional triggers that enforce coordination with the new detail block. if your application runs against non-ORACLE data sources or includes long relation chains that require non-standard functionality. For complete information on these triggers and routines. o Oracle Forms does not delete a master-detail trigger that you have modified. some of which are listed here. For example. you might want to implement your own block coordination mechanism. provided that you place your code outside the default relation program section. Oracle Forms may need to delete or edit the default triggers. Modifying the Default Relation Triggers You may at some point want to add your own comments and code to the default masterdetail triggers that Oracle Forms creates. You can edit a default trigger as you would any trigger that you had created yourself. Oracle Forms provides a number of triggers and built-in subprograms that are useful for such tasks. that if you later change the properties of the relation. you may want to modify or extend the default master-detail functionality that Oracle Forms provides. the master for the second relation (B_C). The additional triggers are attached to Block B. For example. (Oracle Forms removes the relation program section. Oracle Forms removes the form-level On-ClearDetails trigger. Triggers: o On-Clear-Details o On-Populate-Details o On-Check-Delete-Master o When-New-Record-Instance o When-New-Block-Instance Built-in subprograms: . insert it before the "Begin default relation program section" comment or after the "End default relation program section" comment. but does not delete the trigger.

only one of them at a time is displayed in the window. Each canvas-view is displayed in a window. o Use SET_BLOCK_PROPERTY to set block properties dynamically. You must define at least one content canvas-view for each window you create. NEXT_DETAIL_RELATION).o GET_BLOCK_PROPERTY o SET_BLOCK_PROPERTY o GET_FORM_PROPERTY o GET_RELATION_PROPERTY o SET_RELATION_PROPERTY For example. and AUTOQUERY). END. Canvas-Views Canvas-views are the background objects on which you place the interface items (text items. check boxes. to assign the name of the master block in a relation to a local variable you might write the following: DECLARE master_block VARCHAR2. the names of the master and detail blocks (MASTER_NAME. o Use GET_BLOCK_PROPERTY to find out a block's current COORDINATION_STATUS (either COORDINATED or NON_COORDINATED) and a block's FIRST_RELATION.) that operators interact with as they run your form.) and boilerplate objects (boxes. o Use SET_RELATION_PROPERTY to set the properties of a relation dynamically. For example. MASTER_DELETES. DEFERRED_COORDINATION. and the name of the next relation in the form (NEXT_MASTER_RELATION. A content canvasview is the "base" view that occupies the entire content pane of the window in which it is displayed. For example. Content Canvas-Views Most canvas-views are content canvas-views. etc. LAST_BLOCK). that is. etc. MASTER_BLOCK). DEFERRED_COORDINATION). lines. but at runtime. to set the Master Deletes property you could call the following procedure: Set_Relation_Property('my_relation'. o Use GET_RELATION_PROPERTY to get the current property settings for a relation (MASTER_DELETES. BEGIN master_block := Get_Relation_Property('my_relation'. images. the name of the first relation in which the block is a master. . radio groups. you can use these built-in subprograms as follows: o Use GET_FORM_PROPERTY to get the name of the first and last block in the form (FIRST_BLOCK. More than one content canvas-view can be assigned to the same window at design time. DETAIL_NAME).

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 canvasviews obscure some part of the underlying content canvas-view, and are often shown and hidden programmatically. More than one stacked canvas-view can be displayed in a window at the same time. Horizontal/Vertical Toolbar Canvas-Views Toolbar canvas-views are used to create toolbars for individual windows. Horizontal toolbars are displayed at the top of a window, just under its menu bar. Vertical toolbars are displayed along the left side of a window. Windows MDI applications display a default parent window, called the application window. All other windows in the application are either document windows or dialog windows. Document windows are always displayed within the MDI application window frame. If the operator resizes the application window so that it is smaller than a document window, the document window is clipped. Operators can maximize a document window so that it occupies the entire content area of the application window. Dialog windows are free-floating, and the operator can move them outside the application window if they are defined as Movable. If the operator resizes the application window to make it smaller than a dialog window, the dialog window is not clipped. A window can be either modeless or modal. Modeless windows can remain displayed until they are dismissed by the operator or hidden programmatically. You can set the Remove on Exit property for a modeless window to specify whether it should remain displayed when the operator navigates to another window. Modal windows are usually used as dialogs, are often displayed with a platform-specific border unique to modal windows. On some platforms, modal windows are "always-ontop" windows that cannot be layered behind modeless windows. In addition to platform-specific restrictions, modal windows have the following characteristics: The Remove on Exit property does not apply to modal windows. By default, Oracle Forms prevents operators from navigating out of modal windows with the mouse, but does allow them to navigate to another window with keyboard commands. When such navigation occurs, Oracle Forms always closes the modal window, unless the target window is itself a modal window. Modal windows cannot have scroll bars, and setting the Scroll Bar properties for a modal window has no effect. Show_lov : the lov need not be attached to the text item. List_values : the lov should be attached to the text item. lovs are based on record groups. Changing a column in the record group does not update lov columns automatically Record Groups : The following built-in subprograms are available for creating and manipulating record groups programmatically: Creating and deleting groups: o CREATE_GROUP (function) o CREATE_GROUP_FROM_QUERY (function) o DELETE_GROUP (procedure)

Modifying a group's structure: o ADD_GROUP_COLUMN (function) o ADD_GROUP_ROW (procedure) o DELETE_GROUP_ROW (procedure) Populating groups: o POPULATE_GROUP (function) o POPULATE_GROUP_WITH_QUERY (function) o SET_GROUP_CHAR_CELL (procedure) o SET_GROUP_DATE_CELL (procedure) o SET_GROUP_NUMBER_CELL (procedure) Getting cell values: o GET_GROUP_CHAR_CELL (function) o GET_GROUP_DATE_CELL (function) o GET_GROUP_NUMBER_CELL (function) Processing rows: o GET_GROUP_ROW_COUNT (function) o GET_GROUP_SELECTION_COUNT (function) o GET_GROUP_SELECTION (function) o RESET_GROUP_SELECTION (procedure) o SET_GROUP_SELECTION (procedure) o UNSET_GROUP_SELECTION (procedure) Object ID functions: o FIND_GROUP (function) o FIND_COLUMN (function) Populate Group with query : can be used to modify record group at run time but columns cannot be altered ( created during design time). To populate a list item during run time using record group, the record group must contain two columns of char type Oracle Forms Datatypes The following table shows the FIND_ function and return type for each object: Object Function Return Type Alert FIND_ALERT ALERT Block FIND_BLOCK BLOCK Canvas FIND_CANVAS CANVAS Record Group Column FIND_COLUMN GROUPCOLUMN Editor FIND_EDITOR EDITOR Form FIND_FORM FORMMODULE Record Group FIND_GROUP RECORDGROUP Item FIND_ITEM ITEM List of Values FIND_LOV LOV Menu Item FIND_MENU_ITEM MENUITEM Parameter List GET_PARAMETER_LIST PARAMLIST Relation FIND_RELATION RELATION Timer FIND_TIMER TIMER View FIND_VIEW VIEWPORT Using object id improves performance, makes code generic and easier to maintain. Each time you reference an object by name in a PL/SQL statement, Oracle Forms does

the necessary processing to look up the object's ID internally. Default_value built in procedure assigns the value to the indicated variable only if it is null. Consider the following factors when deciding whether to use a global or NULL-canvas item as a variable: o Items can be defined as CHAR, NUMBER, or DATE data types; global variables store only character strings, and using conversion functions like TO_DATE and TO_NUMBER requires additional processing. o Items can be dimensioned by setting their Maximum Length property; global variables are always 255 bytes. o Global variables are visible across multiple modules during a runtime session; NULLcanvas items are not. o The CLEAR_FORM operation sets the value of a NULL-canvas item in the current form to NULL; the value of a global variable is not affected by CLEAR_FORM. o Both items and global variables can be referenced in the default WHERE clause for a base table block and record group SQL statements. Subprograms and functions : Defined in a form module can be called only in that module Defined in a library can be called from anywhere. PL/SQL Packages: A package is a PL/SQL construct that groups logically related types, objects, procedures, and functions. Packages usually have two parts, a specification and a body, although sometimes the body is unnecessary. The first time a package is called (by any user on the instance) the entire package is loaded into the Oracle7 SGA to make subsequent invocation of any procedures or functions it contains very fast. LIBRARIES 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. A library can be attached to any 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. Libraries can also be attached to other libraries. 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. File formats : .pll - source and compiled (pcode) source can be removed using STRIP_SOURCE. .pld - only source libraries cannot refer - form variables, system variables, global variables, form parameters Instead use name_in, copy for referencing Unlike PL/SQL menu items, a user-defined trigger defined in a form module can refer directly to the values of form items. If you want to write a user-named routine or

Oracle Forms exits the . User named triggers : When an unhandled exception is raised in a user-named trigger. For most GUI applications. Thus. subsequent statements are executed. Similarly. Operators can press a background menu key to execute the command assigned to a background menu item. * At any time. you can place it in a user-named trigger and then call that trigger from a PL/SQLmenu item command with the EXECUTE_TRIGGER built-in Menus : Background Menu : only one per menu module. the user-named trigger fails. Multiple form applications There are three ways that one form can programmatically invoke another form: o Execute the OPEN_FORM procedure to open an independent form. the first form remains displayed. the outcome of a usernamed trigger can be trapped in the same way as a call to any other built-in subprogram. When one form invokes another form by executing OPEN_FORM. Oracle Forms treats the failure as an error in the built-in procedure EXECUTE_TRIGGER.5 ADVANCED TECHNIQUES MANUAL Exceptions : When a built . or it can create a separate session of its own. Rather. and operators can navigate between the forms as desired. o Execute the CALL_FORM procedure to call a modal form. no exception is raised. by evaluating the built-in error functions: Error Handling for Stored Procedures There are three primary methods for trapping ORACLE errors that are returned from the kernel during the processing of your PL/SQL code: o checking DBMS_ERROR_TEXT and DBMS_ERROR_CODE built-in subprograms within a form-level ON-ERROR trigger o creating appropriate user-defined exceptions o evaluating the SQLCODE and SQLERRM functions in a WHEN OTHERS exception handler User defined exceptions : exception_init : associate an oracle error number with an exception name of our choice. o Execute the NEW_FORM procedure to replace the current form with a different form. operators who have been granted background menu privileges can display the items on the background menu in a separate "show-keys" window by pressing [[Show BGM]]. it is assigned the name BGM. Features : * There is a logical key associated with the first 10 menu items on the background menu. the background menu can be displayed programmatically by executing the SHOW_BACKGROUND_MENU routine. and sets the return values of the built-in error functions accordingly. An opened form can share the same database session as the form from which it was invoked.anonymous block that uses direct references.in failes. When one form invokes another form by executing NEW_FORM. using OPEN_FORM is the preferred way to implement multiple-form functionality. PECS : Performance event collection services FORMS 4. but the exception does not propagate to the calling trigger. that is. without having to select the item on the BGM menu. So the outcome of the built-ins is to be tested.

Commiting from child form : update records in form A. When COMMIT is initiated.explicit. Opening forms in different database sessions : To open a form without creating a new session: Open_Form('stocks'). call form B. the operator will be prompted to save them before the new form is loaded. any windows that belong to the calling form are disabled. and operators cannot navigate to them until they first exit the called form. for clarity To open a form in its own. commmode. execmode. the called form is modal with respect to the calling form. So root windows are to be avoided when more than one form is to be displayed at the same time.'stats'. as shown here: Open_Form('stocks'. and insertions in the form to the database.NO_SESSION) -. display).default. list.FILESYSTEM). but does not issue the COMMIT statement to finalize these transactions.SESSION). If there are changes pending in the first form. Multiple-Form Applications and the Root Window Only one root window can be displayed even in multiple form applns.ACTIVATE. processing is done for those forms that share the same session. make changes and commit. If form a has a root window defined and invokes form b which also has root window. deletions. Commit finalizes these transactions Post only mode : When a calling form has pending updates or deletes that have not been explicitly posted. Post Vs Commit : Posting consists of writing updates.first form and releases its memory before loading the new form. document. form b is displayed on the root window of a thus hiding form a. Oracle Forms does all of the default validation and commit processing. Calling NEW_FORM completely replaces the first form with the second. call form B.BATCH. post .ASYNCHRONOUS. -. you could make the following call: Run_Product(REPORTS. If posted the status of the records need not be maintained in the form.ACTIVATE. . to invoke Oracle Reports. post return to A in no-rollback mode and commit. The syntax for RUN_PRODUCT is shown here: RUN_PRODUCT(product. Commiting from parent form : update records in form A. That is. NO_SESSION is implicit Open_Form('stocks'. Oracle Forms runs the called form in post-only mode. location. For example. independent session. but not committing these transactions to the database. When one form invokes another form by executing CALL_FORM. call OPEN_FORM with the SESSION parameter. Opening multiple instances of the same form : To navigate use form id. Calling Other Products from Oracle Forms You can invoke other products from Oracle Forms with the RUN_PRODUCT built-in procedure.

When you run Oracle Reports and Oracle Graphics. contains objects generated by oracle graphics OLE :Object Linking and Embedding (OLE) provides you with the capability to integrate objects from many MS Windows applications into a single compound document. Document Specifies the document or module to be opened by the called product. Valid numeric constants for this parameter are SYNCHRONOUS and ASYNCHRONOUS.OLE . always set execmode to RUNTIME. and MS Word is an example of an OLE server application. and linked objects are references from a form module to a linked source file.External activation An OLE server application creates objects that are embedded or linked in OLE containers. Oracle Forms uses the parameters you pass to RUN_PRODUCT to construct a valid command line invocation of the called product. Do not use ASYNCHRONOUS when passing a record group to a called product as a DATA_PARAMETER. embedded objects become part of the form module. Commmode Specifies the communication mode to be used when running the called product. Location Specifies the location of the document or module you want the called product to execute. In Oracle Forms. when invoking Oracle Graphics to return an Oracle Graphics display that will appear in a form chart item. Execmode Specifies the execution mode to be used when running the called product. o ASYNCHRONOUS specifies that control returns to the calling application immediately. when invoking Oracle Graphics to return an Oracle Graphics display that will appear in a form chart item.By default. Chart item : Does not store database values. Synchronous is required when passing a record group to a called product as a DATA_PARAMETER. o SYNCHRONOUS specifies that control returns to Oracle Forms only after the called product has been exited. Embedded objects are activated by In-place/ External activations. the called product logs on to ORACLE using the current form operator's USERID. or BOOK. even if the called application has not completed its display. GRAPHICS. execmode can be either BATCH or RUNTIME. Linked objects . when you invoke Oracle Reports or Oracle Graphics with RUN_PRODUCT. for example. REPORTS. either BATCH or RUNTIME. Oracle Forms is an OLE container application. RUN_PRODUCT takes the following parameters: Product A numeric constant that specifies the Oracle tool to be invoked: FORMS. List Specifies the name or ID of a parameter list to be passed to the called product. either the file system or the database. The operator cannot work in the form while the called product is running. for example. Display Specifies the name of the Oracle Forms chart item that will contain the display generated by Oracle Graphics. When you run Oracle Forms. OLE containers store and display OLE objects.

0. or User Area. The controls can be used to obtain user input and display program output. The MS Excel spreadsheet is stored as part of the form module or as an item in the database. In-Place Activation : When container surrounds the object ( oracle forms surrounding the spreadsheet) Some of the forms menu is replaced by the objects menu. Linked Objects A linked object. VBX Controls in Oracle Forms : A VBX control in Oracle Forms is a type of custom item. A custom item in Oracle Forms can be an OLE Container. it is retained in a separate file known as the linked source file. to deactivate click outside the window External Activation : is started in a separate window. During the installation of an OLE server application. OLE objects are linked or embedded into compound documents created by OLE container applications such as Oracle Forms. An OLE container in Oracle Forms is a type of custom item. An image of the MS Word document appears in the OLE container of the form module and the location of the MS Word file is stored as part of the form module or as an item in the database. An example of object linking is to link an MS Word document in a form module. An image representation of the linked object and information about the location of the linked object's source file is stored in a form module or as item in the database. Editing an embedded object is performed with in-place activation or external activation. When you install MS Windows applications that support OLE. MS Word classes include MS Word 6. and MS WordArt 2. such as a spreadsheet or chart. is created by an MS Windows OLE server application and is embedded in an Oracle Forms form module. MS Word 6. such as a word processor document. An example of object embedding is to insert an MS Excel spreadsheet in an OLE container of a form module. a registration database is created on your computer. the object classes that an OLE server can create are installed in a registration database. For instance. OLE objects are documents created from OLE server applications such as MS Word.0 Picture. if it does not already exist. A custom item in Oracle Forms .server applications can create many object classes. An embedded object is stored as part of a form module or as an item in the database. there is no separate source file containing the Excel spreadsheet. OLE objects can be used as base table items or contol items. VBX Controls : VBX controls provide a simple method of building and enhancing user interfaces. The registration database contains the object classes that are valid for embedding and linking into a form module. is created by an MS Windows OLE server application. Another example of an OLE object is a spreadsheet created in MS Excel. Embedded Objects An embedded object. does not replace forms menu/toolbar to deactivate explicit quit is required. In an OLE container. The content of the linked object is not stored as part of a form module or in the database. you can link or embed OLE objects.0 Document. You can modify the content of an embedded object within Oracle Forms if the OLE server application that created the OLE object is accessible by your computer. A linked object is stored in a separate source file created from an OLE server application. VBX Control.

Types of Foreign Functions : o Oracle Precompiler foreign functions o OCI (ORACLE Call Interface) foreign functions o non-ORACLE foreign functions You can also write foreign functions that combine both the ORACLE Precompiler interface and the OCI. Using a PL/SQL interface provides a much looser bind than that of a user exit interface. Relinking Oracle Forms and creating dynamic link libraries are unnecessary when using a PL/SQL interface to access foreign functions. You can access Oracle Forms variables and items because you can use a set of Oracle precompiler statements that provide this capability. A foreign function that . For instance. This interface allows you to write a subprogram that contains calls to Oracle databases. because accessing foreign functions through a user exit interface depends on a single dynamic link library and usually requires the relinking of Oracle Forms Runform. or User Area. For example. In most instances. A text item in Oracle Forms displays data from the database on a form. you cannot call Oracle Forms built-in subprograms from a foreign function. o Conflicts with shared libraries such as dynamic link libraries (DLLs)are reduced or eliminated. Like other Oracle Forms item types. VBX controls can be used as base table items or control items. an Oracle Precompiler foreign function can access Oracle databases as well as Oracle Forms variables and items. Although it is possible to access Oracle Forms variables and items. when the number 10 changes to the number 5. Both items also reflect changes in the data from the database. you need to know the foreign function's prototype and function's location.can be an OLE Container. VBX controls serve as a way to represent and manipulate data that displays on a form. a text item displaying the number 10 can be depicted by a VBX control that is a knob. A VBX control can accomplish the same task. o Tools for compiling and linking the foreign function are not necessary. VBX Control as an Oracle Forms Item : You can interchange a VBX control with other Oracle Forms items without affecting your intended use for the item. ORA_FFI Package : To access a foreign function through a PL/SQL interface. Creating a PL/SQL interface to foreign functions requires the use of the ORA_FFI built-in package (Oracle Foreign Function Interface). There are many benefits for accessing foreign functions through a PL/SQL interface: o Additional code in the foreign function source code is not required. Oracle Precompiler foreign functions : With embedded SQL commands. OCI (ORACLE Call Interface) Foreign Functions : An OCI foreign function incorporates the Oracle Call Interface. the number 5 appears in the text item on the form and the knob control redirects its position to represent the number 5. PL/SQL Interface to Foreign Functions : Foreign functions can be accessed through a user exit interface or through a PL/SQL interface. The ORA_FFI package provides a public interface for calling foreign functions from PL/SQL. VBX Control. o Relinking Oracle Forms Runform is not required. creating user exit interface requires relinking Oracle Forms Runtime.

A non-Oracle foreign function cannot access Oracle databases or Oracle Forms variables and items. FIND_FORM Explanation: OPEN_FORM The OPEN_FORM built-in includes a NO_ACTIVATE option stipulating that the form being opened should not receive control. CURSOR_ITEM B . There is no CURRENT_RECORD system variable. Non-Oracle Foreign Functions : A non-Oracle foreign function does not incorporate either the Oracle Precompiler interface or the OCI. CALL_FORM E . SYSTEM. SYSTEM. CURSOR_RECORD D .MOUSE_FORM C . a non-Oracle foreign function might be written entirely in the C language. What built-in will you use? A . so the ITEM variables will not help you. OPEN_FORM B . ADD_PARAMETER .incorporates only the OCI (and not the Oracle Precompiler interface) cannot access Oracle Forms variables and items. What built-in can you use to open a second form but keep the first form in control? A*. For example. CURRENT_ITEM Explanation: CURSOR_RECORD This is a record-level requirement.CURRENT_FORM D . You are modifying a Customer form so that it has the ability to place the contents of the customer's ZIP code into a separate form named Dealer. 2. 3. 1. CURRENT_RECORD C*. Which system variable can tell you the record on which the user has placed focus? A .

The built-ins NAME_IN and COPY are used to read and write values across modules with form bind variables. POST-TEXT-ITEM E*. 4. which cannot be referenced directly across modules.or POST. WRITE_VALUE D*. COPY E . not built-ins. SHOW_LOV Explanation: SHOW_LOV The SHOW_LOV built-in has the ability to display an object (an LOV). GET_LOV_PROPERTY C . NAME_IN Explanation: COPY This question requires the use of form bind variables. PL/SQL Library . 5. You have added an LOV to a form and now want to add code to determine whether the user has made a choice from the LOV or dismissed it. because you wish to place values in another field. What built-in will help you? A . Which of the following allows you to collect objects and easily reuse them in other forms? A*. SET_APPLICATION_PROPERTY C . WHEN-LIST-ACTIVATED D . Object group B . If you selected one of the WHEN. In this case. and also return a Boolean value to the calling program indicating whether or not the user selected a value from the LOV. COPY is the right choice.B .. rather than read them from the field. WHEN-LIST-CHANGED B .those are triggers. Trigger library C . be sure to reread the chapter before the exam.choices..

B . that has proven popular enough that others want to use it in their applications. C . The setting has been derived from a Visual Attributes group. You have created a client-lookup canvas. How can you make it available to the other applications from one central source point? A . Copy the canvas. Copy the canvas. E . code. Place the canvas. but has been overridden. The setting has been derived from a property class. E*. code. complete with code and all the necessary objects. B . Property class Explanation: Object group Review the section "Grouping Related Items for Reuse" if you need a refresher on this topic. code. Object package E . 7. and objects into an object group that the other developers will reference. code. Explanation: Copy the canvas. The setting has been derived from a property class. The setting has been derived from a Visual Attributes group. you notice that to the left of its Data Type property is an arrow with an "X" at its point. Copy the form module into an object library. D . You have inherited an application from a developer who left to pursue a career in music. . Review the section "Reusing Objects from an Object Library" if you need a refresher on this topic. What does this symbol indicate? A . D . and objects into an object library. and objects into a PL/SQL library. but has been overridden.D . The setting for this property is invalid. While looking through the SALARY item's Property Palette. Copy the form module into a PL/SQL library. 6. C*. and objects into an object library.

but has been overridden. You want to read the value in an item on another form and use it in your current form. NAME_IN C . The "X" at its point indicates that the setting inherited from the property class has been manually overridden for this item. The arrow indicates that this has been done. 8. What built-in will you use? A . The users notice that when they save an Employee record. NAME_IN and COPY are used to read and write values from/to items in other form modules.Explanation: The setting has been derived from a property class. GET_ITEM_VALUE E*. A Data Type property can only be derived from a property class. because you wish to read a value in another field. 9. What can you do to change it? A . D . the reverse is also true. Open the second form using the GO_FORM built-in with the NO_ACTIVATE option. E . C*. Open the second form using the OPEN_FORM built-in with the SESSION option. This is not the behavior they want. The application allows users to have the forms open simultaneously. In this case. Open the second form using the GO_FORM built-in with the ACTIVATE option. any unsaved Product records are also committed. Open the first form using the OPEN_FORM built-in with the ACTIVATE option. B . NAME_IN is the right choice. SET_ITEM_PROPERTY D . You create a module with two forms: Employee and Product. Of the ones that do. COPY Explanation: NAME_IN Some of the built-in names offered as choices don't exist. FIND_ITEM B . Explanation: . Open the first form using the OPEN_FORM built-in with the SESSION option.

CREATE_VAR Explanation: DEFAULT_VALUE Review the section "Built-In Subprograms that Assist Flexible Coding" if you need a refresher on this topic. GET_WINDOW_PROPERTY E . Review the section "Calling One Form from Another" if you need a refresher on this topic. the code shows it.Open the second form using the OPEN_FORM built-in with the SESSION option. COPY D . What built-in has this ability? A*. You are writing versatile code that checks whether your Employee form's Salary field is visible. if it is. so you would use the GET_ITEM_PROPERTY to determine the current status. GET_ITEM_PROPERTY B . You want to use a single multipage tab canvas for different purposes. SET_PAGE_PROPERTY . if it isn't. 12. DEFAULT_VALUE B . GET_FORM_PROPERTY D . SET_VAR C . You need a built-in that will copy a value into a global variable and create the variable if it is undefined. 10. GET_BLOCK_PROPERTY C . What built-in can you use to determine which route the code will take? A*. Which built-in lets you set the labels for the pages dynamically when the application is running? A . GET_RECORD_PROPERTY Explanation: GET_ITEM_PROPERTY Visibility is an item-level property. 11. the code hides it.

SET_CANVAS_PROPERTY Explanation: SET_WINDOW_PROPERTY 14. SET_TAB_PROPERTY D*.trigger one level higher in the object hierarchy: the form level.B . GET_WINDOW_PROPERTY E . SET_TAB_PAGE_PROPERTY Explanation: SET_TAB_PAGE_PROPERTY Review the section titled "Built-In Subprograms that Assist Flexible Coding" if you need a refresher on this topic. Canvas C . 13. Which built-in enables you to change window properties dynamically while the application is running? A*. Block D . At what object level do you place WHEN-WINDOW. GET_CANVAS_PROPERTY D . so you need to define a WHENWINDOWS.triggers? A*. Form B . SET_WINDOW_PROPERTY B . What happens to a function key's default functionality when you define a key trigger . SET_CANVAS_PROPERTY C . SET_VIEW_PROPERTY C . Window Explanation: Form Windows do not have the capability to hold triggers. 15.

The default functionality is augmented by whatever code is contained in the key trigger. for every function key that does not have an explicit trigger? A . Which property and setting will prohibit the user from deleting a master record if related detail records exist? A . Master block property Delete Record Behavior set to Isolated Explanation: Relation property Delete Record Behavior set to Non Isolated 17. KEY-Fn D*. or no functionality. 16. KEY-FUNCTION C . Forms determines each time the function key is pressed whether it should execute the default functionality or the key trigger. Master block property Delete Record Behavior set to Non Isolated C .for the function key? A . The default functionality is replaced by whatever code is contained in the key trigger. KEY-OTHERS E . D . B . Relation property Delete Record Behavior set to Non Isolated E . Relation property Delete Record Behavior set to Cascading B . The default functionality overrides whatever code is contained in the key trigger. Master block property Delete Record Behavior set to Cascading D*. C*. What trigger can institute a default functionality. KEY-NONE Explanation: KEY-OTHERS . Explanation: The default functionality is replaced by whatever code is contained in the key trigger. KEY-ELSE B .

What trigger is necessary for implementing a cascading delete in a master/detail relation? A . PRE-DELETE D . 18. POST-CASCADE Explanation: . PRE-POST C*. SET_FORM_PROPERTY Explanation: SET_APPLICATION_PROPERTY 19. PRE-CASCADE B . SET_CONTEXT D . What built-in enables you to dynamically control when a detail block is populated? A . PRE-UPDATE E .The purpose of the KEY-OTHERS command is to replace the functionality of any key that can have a trigger assigned to it but does not. SET_BLOCK_PROPERTY B*. SET_WINDOW_PROPERTY Explanation: SET_RELATION_PROPERTY 20. What built-in gives you the ability to change the cursor's appearance dynamically? A*. SET_ITEM_PROPERTY E . SET_APPLICATION_PROPERTY B . SET_RELATION_PROPERTY C . SET_CANVAS_PROPERTY C . SET_ITEM_PROPERTY D .

check to determine if related detail records exist. SET_GROUP_QUERY Explanation: POPULATE_GROUP_WITH_QUERY 23. 21. 22. You need to add a display item to a form. The item will display a calculated total summarizing data from several different tables. set its Query Data Source Type to FROM clause query and write the appropriate select command in its Query Data Source Name property. or PRE-POST trigger do not exist. After creating a data block manually. What is the best course of action to take? A . set its Query Data Source Type to FROM clause query. set its Query Data Source Columns property to the desired columns and write the appropriate select command in its Query Data Source Arguments property. CREATE_GROUP C . Explanation: After creating a data block manually. ADD_GROUP_ROW D . C . B . OPEN_FORM . D*. Using the Data Block Wizard. and delete those detail records before proceeding to delete the master record. The correct approach is using a FROM clause query. What built-in enables you to replace the query associated with a record group? A*. create a block with a view as its data source type. POPULATE_GROUP_WITH_QUERY B . You cannot use a stored procedure or a view because both of these require adding a new item to the database. You do not want to create any new objects in the database.PRE-DELETE The PRE-DELETE trigger is the only one that has the capability to intercept a masterrecord deletion. POSTCASCADE. create a block with a stored procedure as its data source type. Using the Data Block Wizard. What built-in can you use to open a second form modally? A . After creating a data block manually. A PRE-CASCADE. and write the appropriate select command in its Query Data Source Name property.

POPULATE_LIST B . NEW_FORM D . GET_FORM_PROPERTY Explanation: GET_APPLICATION_PROPERTY 25. CREATE_GROUP_FROM_QUERY . What built-in can provide the name of the current form? A*. What built-in can populate a dynamic list item on a form with values from a record group? A*.B*. RUN_PRODUCT Explanation: CALL_FORM CALL_FORM is the built-in that opens forms in a modal window. RETRIEVE_LIST Explanation: POPULATE_LIST 26. 24. GET_APPLICATION_PROPERTY B . POPULATE_LIST_WITH_QUERY C . What built-in enables you to change a nonquery record group into a query record group? A . GET_BLOCK_PROPERTY C . POPULATE_GROUP B . CALL_FORM C . SET_LIST_VALUES D . GET_WINDOW_PROPERTY D .

B*. After creating a data block manually. calculations. specify a data source type of stored procedure. and lookups without needing to create a view D . Using the Data Block Wizard. you do not have to specify a data source type of table when you also have the option for stored procedure. POPULATE_LIST_WITH_QUERY Explanation: POPULATE_GROUP_WITH_QUERY The purpose of the POPULATE_GROUP_WITH_QUERY built-in is to fill a record group with data based on a given query. specify a data source type of table. POPULATE_GROUP_WITH_QUERY D . Can include user-defined parameters Explanation: Can perform server joins. Can perform server joins. even if the record group was originally a nonquery group. 27. How can you base a data block on a stored procedure that uses a ref cursor? A . calculations. C . Can utilize any PL/SQL code C*. 28. set the Query Data Source Name property to the appropriate stored procedure. and lookups without needing to create a view The essence of the FROM clause query is its capability to nest SQL select statements in . and lookups without needing specific access rights to tables B . The options detailing the creation of a data block manually specify using the name of the stored procedure in properties not designed to hold a procedure name. calculations. specify a data source type of stored procedure. A . Name a benefit of using a FROM clause query as the basis for a data block. set the Query Data Source Columns property to the appropriate stored procedure. Explanation: Using the Data Block Wizard.C*. Using the Data Block Wizard. D . Can perform server joins. Using the Data Block Wizard. After creating a data block manually.

You cannot change the contents of a static record group at runtime. POPULATE_LIST C*. CREATE_GROUP_FROM_PARAMETER B . You have created a sales application that uses one form for the sales ticket and a second form to list the items being purchased. Open-transaction mode Explanation: Post-only mode 31. Commit mode C .subqueries that perform lookups. SET_GROUP_FILTER Explanation: POPULATE_GROUP 30. Explanation: You cannot change the contents of a static record group at runtime. What built-in enables you to populate a record group with data that can be filtered dynamically at runtime? A . . What mode will the second form be opened in? A*. 29. Post-only mode B . and calculations without relying on a database view. What built-in enables you to change the contents of a static record group at runtime? A . POPULATE_GROUP C . table joins. the sales ticket is still open and has pending changes. Enter-query mode D . ADD_GROUP_ROW D*. POPULATE_GROUP_FROM_QUERY B . POPULATE_GROUP D . When the second form is called.

when and where should you define the parameters that will accept the values? A*. OPEN_REPORT_WITH_GROUP D . In the called form. In the calling form. 34. at design time C . RUN_PRODUCT C .The definition of a static group is one whose contents cannot be changed at runtime. 32. ActiveX controls C . Navigator class B . Standard Object library . at design time B . it must be defined in the called form. PASS_GROUP_DATA B*. See the section titled "Passing Data Between Forms Using Parameter Lists" for a refresher on this topic. and of course. In the calling form. at design time A parameter that is to be received must be defined at design time. What built-in enables you to pass data from a record group to a separate Oracle graph? A . at runtime D . at runtime Explanation: In the called form. 33. What reusable component enables you to lead your users through complicated processes? A . PASS_GROUP Explanation: RUN_PRODUCT The RUN_PRODUCT built-in is designed to open other forms of graphics in their respective runtime programs. In the called form. When you need to design a pair of forms in which one passes values to the other.

CREATE_TIMER E . SET_TIMER_PROPERTY Explanation: FIND_TIMER The FIND_TIMER built-in returns the internal ID of whatever timer's name is provided . 35. Standard Object library Wizard class Explanation: Navigator class The Navigator class contains objects that make it easy to implement a Navigator interface in your own applications. which can lead users through complicated processes. ActiveX controls C . Calendar class D*. What built-in enables you to find the internal ID of a timer? A*. Wizard class Explanation: Wizard class The Wizard class enables you to create your own custom wizards. 36. SET_TIMER D . Navigator class E . FIND_TIMER B . WHEN-TIMER-EXPIRED C . Picklist class B . What reusable component enables you to create an Object Navigator-like interface for your own applications? A . Picklist class E*.D .

You moved a number of your application's program units over to the server and started experiencing DBMS errors. FIND_TIMER D . Picklist class B . A REMOVE_TIMER built-in does not exist. 39. Calendar class D . DBMS_ERROR_NUM C . SET_TIMER_PROPERTY Explanation: DELETE_TIMER The DELETE_TIMER built-in's sole purpose is to deactivate and eliminate timers. DELETE_TIMER B . Standard Object library Explanation: Standard Object library 38. DBMS_ERROR B . REMOVE_TIMER C . SET_TIMER E .as an argument. 37. ActiveX controls C . DBMS_ERROR_TEXT . What built-in can you use to capture these errors and the information they return? A . Navigator class E*. What reusable component enables you to create a customized SmartClass? A . What built-in enables you to eliminate a timer? A*. DBMS_ERROR_STRING D*.

WHEN-LOV-OPEN B . and at what level is it most commonly defined? A . and move the resulting chart to the correct position on the canvas. ON-LISTVAL E*. identify the chart file. What trigger is used to respond to timers. WHEN-TIMER-EXPIRED at the form level Explanation: WHEN-TIMER-EXPIRED at the form level 41. 42. WHEN-TIMER-BEGINS at the block level B . KEY-LISTVAL Explanation: KEY-LISTVAL The KEY-LISTVAL trigger fires whenever the user presses the LOV function key. . 40. ON-TIMER-EXPIRE at the form level D . Execute the File | Import menu command. ON-LIST-OPEN C .Explanation: DBMS_ERROR_TEXT The DBMS_ERROR_TEXT built-in is designed specifically to return the text of error messages sent back by the database server. KEY-LIST-OPEN D . ON-TIMER-BEGIN at the block level E*. What trigger should you use to activate a calendar when the user presses the List of Values function key while in a date field? A . What are the steps for embedding an existing chart on a form that is open in the Layout Editor? A . ON-TIMER at the window level C .

All other potential answers to this question were made up (FORMS_RUNTIME is a program. so it is not a correct answer because the question specifies that you are dealing with an existing chart. The command File | Import does not exist in Form Builder. The Chart Wizard is only useful for creating new charts.B . Invoke the Chart Wizard. FORMS_RUNTIME Explanation: FORMS_DDL The FORMS_DDL built-in gives you the ability to execute SQL commands during runtime. When dealing with an existing chart file. 43.TIMER D . SYSTEM. Create a chart item manually using the Chart Item button. DDL_RUNTIME B*. identify the chart file in the item's Property Palette. GET_TIMER_PROPERTY C . What built-in enables you to manipulate table structures at runtime? A . and alter the new item's properties to use the existing chart file. FORMS_DDL C . 44. and move the resulting chart to the correct position on the canvas. and move the resulting chart to the correct position on the canvas. you bypass the Chart Wizard. GET_APPLICATION_PROPERTY B . What built-in enables you to determine which timer fired a WHEN-TIMEREXPIRED trigger? A*. not a built-in). FIND_TIMER . identify the chart file in the item's Property Palette. create a new chart item manually. DDL_FORMS E . identify the chart file. and move the resulting chart to the correct position on the canvas. RUNTIME_DDL D . C*. Explanation: Create a chart item manually using the Chart Item button.

When-new-form-instance.dll format in order for Forms 6i to use it.Explanation: GET_APPLICATION_PROPERTY 45. * Returns a Boolean value D. C++ D . when-new-form-instance 2. *Pre-Text . What is the order of firing the following triggers((Both are in form-level)) 1. when-new-form-instance B. Returns a Integer value. What is the return data types of id_null. PL/SQL8 B*. 46. What file format must a third-party external procedure be in for Forms 6i to use it? A . show_lov A. pre-text-item A. but it must be stored in the . DLL C . Structured Query Language Explanation: DLL An external procedure can be written in a variety of third-party languages. None of the above Explanation: Returns a Boolean value 47. B. None of the above Explanation: Pre-Text . when-new-form-instance . Returns a char value C. pre-text-item C.

Explanation: Pre-form. Post Query fires only once. pre-block. pre-record. pre-text-item. *Record_Scope. Data_Scope. C. A. Which Property Palette display mode is likely to show more properties? . Item_Scope. A. pre-text-item. pre-text-item. Pre Query fires for each return row. when-new-form-instance. Block_Scope. pre-record . Pre-form. What is the validation unit property of form module? A. Block_Scope. Default_Scope Validation unit property of form module is Record_Scope. *Post Query fires once for each record fetched from the query Pre Query fires only once. When-new-form-instance. 50. 49. D. Item_Scope. When Post Query fires. when-new-form-instance C. You open a single property sheet to display properties for your DEPARTMENT data block and DEPARTMENT canvas simultaneously. None of the above Explanation: Record_Scope. Item_Scope. when-new-form-instance B. Static_Scope. pre-text-item. post-form. What is the sequence of triggers firing? Pre-form. pre-record. Difference between Post Query and Pre Query. *Pre-form. pre-record. pre-record . post-form D. pre-block. post-form. Pre Query returns more than one row. Default_Scope and Form_Scope 1. When-new-form-instance. pre-block. Block_Scope. pre-block. Default_Scope B. post-form. Pre-form. post-form. pre-block. pre-text-item. pre-record. post-form. pre-block. None of the above Explanation: Post Query fires once for each record fetched from the query Pre Query fires only once. Pre-form. When-new-form-instance. B. Dynamic_Scope D. Trigger_Scope C.48. pre-text-item.

The special display is *****. Union Explanation: Union The Intersection display mode shows only the properties that multiple selected objects have in common. The Property Palette shows each object's old and new values for that property. You cannot change a property for multiple objects at one time. The property is not applicable for the object you have selected. and change a property's value? A . the only way it can deal with multiple objects is to display something special when those objects' values are different. Explanation: The change is applied to all selected objects 4. open the Property Palette. whether the objects share the properties in common or not. You cannot update that property for the object you have selected. 3. The value "*****" will be inserted into the field automatically. C . B . What happens if you select multiple objects. C*. and their values for that property are not the same. The changed value displays as *****. D . D . Explanation: Two or more objects are selected. and their values for that property are not the same Because the Property Palette cannot display more than one value per property.A . 2. B . What does it mean when the Property Palette displays ***** as a property's value? A*. Intersection B*. Which data block property would you consider changing if your records include LONG items that are not likely to be edited? . Two or more objects are selected. while the Union display mode shows all properties for all selected objects. The change is applied to all selected objects.

Locates Form Builder files on your hard disk D*. The data blocks and components are irreversibly deleted. and all components from the data block are removed from any canvas that contained them.A*. including the data block's frame and boilerplate title text. The data blocks and components are irreversibly deleted. The data blocks and components are deleted but can be retrieved using the Edit | Undo command. this data block property can improve application performance by keeping the application from sending the voluminous LONG data back to the server during an update command. If the group containing the matching property is closed. What does the Property Palette toolbar field labeled Find do? A . B . Forces the Palette to place its focus on the first property matching the characters you type Explanation: Forces the Palette to place its focus on the first property matching the characters you type The Property Palette toolbar field labeled Find makes the Property Palette quickly jump to specific properties. 5. Locates other objects containing the same property as the one you currently have selected B . but the data block's . Query Allowed D . DML Array Size Explanation: Update Changed Columns Only If your records include LONG items that are not likely to be edited. 6. and all components from the data block are removed from any canvas that contained them. Update Allowed C . C*. the Find field will even open it up for you. What would be the result of completely deleting a data block from the Object Navigator? A . Update Changed Columns Only B . Allows you to search-and-replace a given property value with a different value C .

Properties with blank properties will be pasted. What does the Property Palette context bar do? A . the destination object will be changed to the same type of object as the source. all components from the data block are removed from any canvas that contained them.frame and boilerplate title text will stay on the canvas. D . . the Palette pastes only the properties for which an actual value is shown. The data blocks and components are irreversibly deleted. If the destination is a different type of object than the source. When copying multiple properties. No Answer is Correct B . E . It is not possible to copy multiple properties at one time. Explanation: The data blocks and components are irreversibly deleted. Properties not relevant to the destination object will be added to that object. C . Explanation: No Answer is Correct The Property Palette can copy and paste individual or multiple properties. 7. Identifies which program you are in when you open the Property Palette D . and all components from the data block stay on the canvas and must be deleted manually. Which of the following occur if you copy multiple properties from one object and paste them into another? A*. Nothing B*. Provides help instructions based on your location in the Property Palette Explanation: Identifies which object's properties are currently being displayed by the Property Palette. and only the properties that are relevant to the object receiving the pasted properties. 8. D . Identifies which object's properties are currently being displayed by the Property Palette C . but the data block's frame and boilerplate title text will stay on the canvas.

What does freezing the Property Palette do? A .9. You now want to modify the Transaction_Date_Time item in the form so it is automatically populated with the current date and time each time a new record is created. it will not work in the Initial Value property. Programmatically requery all tables in the application when the user opens that canvas. Set the Initial Value property to $$DATETIME$$. D . B . Enable the LOV's Automatic Refresh property. Explanation: Set the Initial Value property to $$DATETIME$$. 10. How can you accomplish this? A . Set the Default Value property to $$DATETIME$$. Explanation: Enable the LOV's Automatic Refresh property The Automatic Refresh property determines whether the LOV's underlying query executes every time the LOV is invoked. When multiple objects are selected. The is no Item property called Default Value. D*. Set the Default Value property to SYSDATE. C*. You have created a SALES_TICKET form for a point-of-sale application. Setting the property to Yes configures it to requery every time. You created an LOV for stock items and included a Quantity Currently In Stock column in the LOV. or only the first time it is invoked. There is no way to ensure this. 11. Set the Initial Value property to SYSDATE. How can you ensure that the user sees accurate "in stock" numbers each time the LOV is invoked? A . you must use $ $DATETIME$$. shows only those properties that all selected . and while SYSDATE is a valid parameter in a SQL query. C . B . Enables you to change a property in multiple objects at one time B . Enable the LOV's Automatic Select property.

What is the best way to ensure that an item cannot accept query criteria? A . Opens a second Palette for comparing multiple objects' properties Explanation: Forces the Palette to continue displaying properties for the currently selected object(s). and WHEN-KEY-UP. D . WHENKEY-DOWN. assuming they are the only items in the list and the LOV's properties are set to automatically display the LOV and automatically enter the value once a row is selected? A . 3 characters B . Set the item's Queryable property to No. Setting the Query Length property to 0 simply tells Oracle Forms 6i to use the item's length as the maximum query length. Forces the Palette to continue displaying properties for the currently selected object(s). How many characters would you need to type in an LOV to select the WHEN-KEY-UP item from a list containing WHEN-BUTTON-PRESSED. 13. 2 characters D . 1 character C*.objects share in common C*. regardless of what object(s) you select from that point on 12. Set the item's Query Length property to 0. Set the item's Disable Query property to Yes. Set the item's Query Allowed property to No. Explanation: Set the item's Query Allowed property to No There are no properties named Disable Query or Queryable. C*. regardless of what object(s) you select from that point on D . B . 10 characters Explanation: 2 characters .

Because all three choices begin with "WHEN-." the LOV only cares about the first differentiating character. numbers. Any control on your form that allows the user to view and edit text. C . Which of the following actions can a user do with a display item? . B*. or dates B . No text item property would effect this change. Set the Automatic Refresh property in the LOV Property Palette to Yes. and Automatic Select specifies whether the selected LOV row is placed into the specified text item without the user having to double-click on the row or click the OK button. Any control on your form that allows the user to view and edit text. Set the Automatic Display property in the LOV Property Palette to Yes. Of the LOV properties listed. What is required to make that happen? A . 16. Any control on your form that allows the user to view and edit text or numbers D . D . Automatic Refresh determines whether the LOV's contents are requeried each time it is opened. Set the Automatic Refresh property in the text item Property Palette to Yes. dates. Explanation: Set the Automatic Display property in the LOV Property Palette to Yes. What is the definition of the term "text item"? A . after which the row's key value will automatically be entered into the text item. numbers. which is the "K" that identifies the KEY group. numbers. dates. 14. You have created an LOV for a text item on your canvas. or long data Explanation: Any control on your form that allows the user to view and edit text. Set the Automatic Display property in the text item Property Palette to Yes. Any control on your form that allows the user to view and edit text C . E . Set the Automatic Select property in the LOV Property Palette to Yes. The label preceding a field on a form E*. and you would like the LOV to appear automatically each time the user enters that text item. or long data 15. The next character needed is the "D" to select DOWN.

because. D . Database C*. C*. 18. what items does it contain? A . View existing database values. Update existing database values. Instead.A . it is a read-only field. To which of the following items does a control block directly correspond? A . You must manually create any items that will go into a control block. Column Explanation: No answer is correct A control block is not associated with a database object. Table E . or a group of items with single values (such as calculated subtotals). No answer is correct D . None. B . B . All Answers are Correct Explanation: View existing database values A display item shows data but does not allow the user to change it. . it contains either controls (such as buttons). Explanation: None. Text items for all columns in the related database table. C*. E . None. Delete existing database values. All Answers are Correct B . Insert new database values. In essence. You must manually create any items that will go into a control block. 17. When a control block is created. you cannot put items in a control block.

Change the canvas's Window property. What is the definition of an input item? A . 19. But you must do it manually after the block is created. Users of your application have requested that they be able to see STOCK and CUSTOMER canvases on the screen simultaneously. How can you make the CUSTOMER canvas use the second window? A . A form object through which the user can enter and change data E . and a window's Primary Canvas property specifies the primary canvas for a window that displays multiple canvases. The Visual Attributes Group has no window selection properties.By definition. Which check box property controls the text that displays next to the check box? A*. C*. Change the canvas's Visual Attributes group. but the dialog itself is a window. D . A graphics element affecting how a chart will look D*. a control block is not related to a database table. not an input item. Label . A dialog box may contain input items. Explanation: Change the canvas's Window property A canvas's Window property determines which window the canvas is visible in. A form object through which the program can enter and change data Explanation: A form object through which the user can enter and change data Input items are the basis of forms-they enable a user to add or edit data. Change the window's Primary Canvas property. B . A form object through which the user can view data B . You add a second window to the application. It is not possible to change a canvas's display window. A dialog box C . 20. And you can put items into a control block-that is what it's for. 21.

or create a new radio group for it . Stacked D . so a simple stacked canvas will fulfill the requirement. Content Explanation: Stacked The requirement that the tutorial text be visible on the same form limits the choices to either stacked or tab. The Layout Editor responds by: A . Text C . or create a new radio group for it Explanation: Presenting a dialog box giving you the chance to select a radio group for the new radio button. Displaying a warning message. since a radio button group already exists C*. A tab canvas might be useful for a multipage tutorial. 22. Explanation: Label Remember that both Prompt and Label can place text next to a radio button. Viewport C*. Which type of canvas is best suited for displaying tutorial text on the same canvas as the form about which the user is being taught? A . Offering to create a check box instead. and then returning you to the Layout Editor B . Tab B . but the requirements did not state the need for multiple pages. Presenting a dialog box giving you the chance to select a radio group for the new radio button. A check box's text is fixed and cannot be changed. You are working with an existing radio group in the Layout Editor and try to add a radio button to the group.B . 23. Name D . Toolbar E .

In the Data Block Wizard. move the BUDGET column into the Available Items area. What is the best way to do this? A . B*. D . The best way to do this is: A . . but you want the value to look exactly like a regular field. Content C . but the item should be a read-only text box so users cannot change it. Your Employee form includes a SALARY text item. You want to ensure that standard users cannot input or change a salary value. create a display item and set its Insert Allowed property to No. or if a completely new group is what you desire.The Layout Editor is willing to add buttons to an existing radio group. Toolbar B . C . B . its Update Allowed property to No. The buttons can replace every menu action your users would need to take. and its Update Allowed property to No. Tab D . 26. Set the item's Enabled property to No. In the Layout Editor. Therefore. It just needs to know which group will get the new button. 25. Set the item's Enabled property to No. Explanation: Set the item's Insert Allowed property to No. The DEPARTMENT table in your database has been augmented with a BUDGET column. and its Database Item property to No. and its Update Allowed property to No. and its Update Allowed property to No Changing an item's Enabled property to No causes its contents to display with light gray characters instead of black. 24. What type of canvas can easily eliminate the need for a menu in your application? A*. You want to add BUDGET as an item on your Department form. Set the item's Insert Allowed property to No. Stacked Explanation: Toolbar A toolbar canvas's sole purpose is holding buttons that initiate actions. this is the only valid choice. It is not possible for an unchangeable item to look like a changeable item.

The primary reason for groups is to ensure that when any item in the group is selected. You have created a form that contains two canvases. Explanation: In the Layout Editor. and the buttons have been placed into a separate group. and four buttons. all items are selected with it. The group of buttons is selected. B . move the BUDGET column into the Available Items are C: Proceed to the Layout Editor and add BUDGET as a text item. it isn't until the user tries to save their work that the data block's Insert Allowed and Update Allowed properties halt the action. The items have all been placed into a group. In the Data Block Wizard.Change the new data block item's Insert Allowed and Update Allowed properties to No. create a display item and set its Column Name property to BUDGET. In the Layout Editor. Nothing is selected. but the user can still place focus on the field. and change the item's Insert Allowed and Update Allowed properties to No. but it creates a normal-looking text box that actually allows the user to type in data. create a display item and set its Column Name property to BUDGET. eliminates two answers. What happens when you click one of the buttons in the Layout Editor? A*. The button is selected. 28. Setting an item's Database Item property to No keeps it from retrieving database data. C . C . The third incorrect answer creates an application in which the field's data cannot be changed. D*. which is also not optimal. Which canvas type is most dissimilar to the others? A . 27. All groups are selected D . ten database items. Proceed to the Layout Editor and add BUDGET as a text item. Content . This is not optimal design. All items on the button's canvas are selected Explanation: The group of buttons is selected. E .

WHEN-CHECKBOX-CLICKED D . WHEN-CHECKBOX-UNCHECKED C . each page overlaying the others when it is selected by the user or developer. Stacked C . A stacked canvas can contain push buttons. What trigger would you use to execute code each time a user modifies the value of a check box? A . WHEN-CHECKBOX-CHECKED E*. 30. Toolbar Explanation: Toolbar Content. The toolbar canvas type is not. It is not possible to get this functionality from a single stacked canvas. A tab canvas can contain multiple pages. and tab canvases are all intended to display database data. it is intended to display buttons that work in concert with the items on the other three canvas types. What is the primary difference between tab and stacked canvases? A . Explanation: A tab canvas can contain multiple pages. stacked. D . The essence of a tab canvas is the fact that it consists of multiple pages of data. B . A stacked canvas obscures what is beneath it. Tab D*. WHEN-CHECKBOX-CHANGED Explanation: WHEN-CHECKBOX-CHANGED . ON-NEW-CHECKBOX-INSTANCE B .B . 29. A tab canvas looks much cooler. C*.

WHEN-NEW-RECORD-INSTANCE C . WHEN-DATABASE-RECORD Explanation: WHEN-NEW-RECORD-INSTANCE ON-NEW-RECORD is not a valid trigger name. Form level Explanation: Form level Windows do not have triggers. 32. ON-NEW-RECORD B*. What do you need to do to within Form Builder to run a form module in debug mode? A . 33. Placing the WHEN-WINDOW-CLOSED trigger at the Form level allows it to fire when any window in the module is closed. run the form. and the Debugger displays automatically. Choices WHEN-VALIDATE-RECORD and WHEN-DATABASE-RECORD fire at other times. The Debugger will appear automatically. You would like to create a trigger that fires each time a window is closed by the user. Window level C . Enable the Debug Mode button. Enable Debug Messages and then run your form. Data block level D . Canvas level B . You will most likely place the trigger at which of the following levels: A . . B*. What trigger would fire each time a new record is created? A . and in the Forms Runtime program execute the Help | Debug menu command.31. Review the section "Supplementing the Functionality of Input Items" if you need a reminder on this topic. Run the form. Item level E*. WHEN-VALIDATE-RECORD D . C .

D . Enable the Debug Mode button, run your form, and in the Forms Runtime program execute the Help | Debug menu command. Explanation: Enable the Debug Mode button, run the form, and the Debugger displays automatically. See the section "Running a Form Module in Debug Mode" for a refresher on this topic. 34. When does the PRE-QUERY trigger fire? A*. After the user enters query criteria, but before the query executes B . Before the form enters Enter-Query mode C . After the form enters Enter-Query mode, but before the user enters query criteria D . After the query executes, but before records are shown to the user Explanation: After the user enters query criteria, but before the query executes The PRE-QUERY trigger fires after Enter-Query mode but before a query's select statement has been finalized, and therefore before the query is executed. 35. Which built-in causes an editor to display for a text item? A . WHEN-NEW-ITEM-INSTANCE B . SHOW-EDITOR C*. SHOW_EDITOR Explanation: SHOW_EDITOR SHOW-EDITOR is formatted as a trigger, not a built-in, and doesn't exist. WHEN-NEWITEM-INSTANCE exists but is also a trigger, not a built-in. 36. You want to write a trigger that screens a query condition. At what level will you place the trigger? A . Block B*. Form

C . Item D . Record Explanation: Form 37. You wish to have certain values in a form initialized when the form is first opened. What trigger will you use? A . WHEN-NEW-CANVAS-INSTANCE B*. WHEN-NEW-FORM-INSTANCE C . WHEN-NEW-FORM D . WHEN-FORM-OPENED E . WHEN-NEW-CANVAS Explanation: WHEN-NEW-FORM-INSTANCE None of the other choices are valid triggers. 38. What part of a trigger specifies the trigger's actions? A . Type B . Name C*. Code D . Scope Explanation: Code A trigger's actions are defined entirely by its code. 39. Which built-in causes an LOV to display for a text item that has one defined? A . WHEN-NEW-ITEM-INSTANCE B . WHEN-NEW-LOV

C . GO_ITEM D*. SHOW_LOV Explanation: SHOW_LOV WHEN-NEW-ITEM-INSTANCE and WHEN-NEW-LOV are triggers, not built-ins. GO_ITEM navigates to an item but does not open an LOV. 40. What trigger can you use to ensure that a query entered by the user includes at least one item that is indexed, and keep the query from occurring if not? A*. PRE-QUERY B . WHEN-CLEAR-BLOCK C . ON-SELECT D . POST-SELECT E . ON-FETCH Explanation: PRE-QUERY While the other triggers listed are query triggers, only the PRE-QUERY trigger fires before the select statement is executed. 41. What is the purpose of the KEY-OTHERS trigger? A . Provides code to execute if a key's own trigger fails B*. Provides code to execute if user presses a key that has no trigger attached C . Provides code to execute if user presses wrong key D . Provides code that accesses another key's trigger and executes the code it contains Explanation: Provides code to execute if user presses a key that has no trigger attached. See the section "Form Trigger Categories" for a refresher on this topic. 42. Your data analysis application is slowing the network to a crawl. You analyze the

Explanation: ALERT_BUTTON2 44. What value will be returned if the user selects the second button? A . It depends on the choice being offered by the button. POST-UPDATE Explanation: PRE-QUERY The PRE-QUERY trigger fires before a query's select statement has been finalized. Item B . DIALOG_BUTTON2 C*. 43. POST-QUERY B . You have created an alert with three buttons. ON-NEW-QUERY-INSTANCE C . What type of trigger can you use to enforce that requirement? A . Block D . returning many more records than necessary. and is therefore ideal for screening query criteria before the query is executed. PRE-QUERY E . What is the default level at which validation occurs in the Forms Runtime program? A*.queries users are performing and discover that the majority of their queries are too broad. You decide to require that any query have at least three fields containing criteria. BUTTON2 B . Form C . ALERT_BUTTON2 D . PRE-UPDATE D*. Record .

Items.sequence-name. and in fact cannot store values at all. The Forms Runtime program opens the LOV and shows only items that match what the user has typed so far. C .sequence-name. can.Explanation: Item By default. D*. Set the DML Array Size property to :sequence. Explanation: This action is not possible. How does the Forms Runtime program respond when a user enters text into a text item that has an LOV attached and the VALIDATE_FROM_LIST property set to Yes? A . B . The Forms Runtime program populates the item automatically with the first value in the LOV that matches the user's entry. Explanation: The Forms Runtime program opens the LOV and shows only items that match what the user has typed so far. which would have been the right answer if the question had referred to an item instead of . B . on the other hand. How can you cause a block to use a database sequence to get unique IDs? A . Set the Validate From List property to :sequence. D .nextval.sequence-name. See the section "Introduction to Form Builder Validation Properties" for a refresher on this topic.nextval. This action is not possible. C*. Data blocks cannot read sequences. 46.nextval. the Forms Runtime program validates an item immediately when the user tries to leave the item.sequence-name.nextval. Validate From List is a Data Block property. 45. The Forms Runtime program ignores the LOV if the user types a value directly into the field. not an Item property. Give yourself half a point if you answered: Set the Initial Value property to :sequence. Set the Initial Value property to :sequence.

is perfect. You want to add a delete-confirmation dialog to your application. and remember to pay closer attention to the wording of questions. ON-UPDATE D*. PRE-COMMIT E . 48. After the form is validated Explanation: Never The trigger will not fire because the object level defined in the trigger name item is smaller than the module's validation unit. POST-UPDATE Explanation: PRE-COMMIT PRE-COMMIT is a form-level trigger that fires only once at the beginning of a transaction. ON-UPDATE and ON-COMMIT only occur if you have replaced the default Forms Runtime transaction processing. so it is too late for a validity check. 47. so it cannot perform validation on a row-by-row basis. a single word defines why one choice is right and another choice wrong. In some Oracle exam questions. Your form module's Validation Unit property is set to Form. Before the form is validated D . the date entered is later than the date that was there before. What is the best trigger to use? A . ON-COMMIT C . Never B . The module includes a data block that has a PRE-TEXT-ITEM trigger. You want to use a trigger to guarantee that whenever the date in that field is changed. PRE-COMMIT. You have written a contact-tracking application that includes a field for the last date a client was contacted. POST-UPDATE occurs after the update has occurred. The remaining trigger. 49. At what point will the trigger fire? A*. PRE-UPDATE B . When data is committed C . You can do so by .a block.

INSERT B . See the section "Controlling System Messages" for a refresher on this topic. Message C .message_level := 5. :system.message_level := 0.suppress_working := 'TRUE'. What is the last DML statement processed during a commit transaction? A*. Of the three remaining choices. update. Alert B .message_level := 5. POST Explanation: INSERT The post command does not perform a commit. What would you put in the form's WHEN-NEWFORM-INSTANCE trigger? A . .suppress_working := 'FALSE'. 51. B . Editor D . Explanation: :system. :system. :system.creating which type of object? A*. C . You would like to keep the user from seeing the Forms Runtime program's "nn records applied and saved" messages. DELETE D . their processing order is delete. Message box Explanation: Alert 50. UPDATE C . D*. :system. and then insert.

52. No Answer is Correct. GO_ITEM Explanation: No Answer is Correct. Which navigational built-in will move the focus to a subsequent record and place it on the same item it was on in the original record? A . Which of these built-ins can you use in a PRE-UPDATE trigger? A . NEXT_ITEM C*. E . D . Set the data block's DML Array Size property to 50. How would you do this? A . . You would like to modify your form so it uses array processing to send DML statements to the server in batches of 50. 53. COMMIT_FORM C*. DOWN B . The described action is not possible from a single built-in. Explanation: Set the data block's DML Array Size property to 50. Each built-in listed is a navigational built-in. All Answers are Correct. C . NEXT_BLOCK B . Explanation: DOWN 54. Set the window's DML Array Size property to 50. DOWN D . Set the canvas's DML Array Size property to 50. which cannot be used within the navigational trigger PRE-UPDATE. B*. Array processing is limited to 25 records per batch. D .

2000 b. Regarding the Summary query which of the following is true a. None of the above 9.1. a space (?? ??) b. c. an asterisk c. It gives a negative value c. b. None of the above 6. None of the above 8. 8 b. of columns that may be used as composite primary key in oracle 8 a. none of the above 3. 32 d. we can pass a negative value in second parameter c. The order of the base column list in the select statement should be same in the Group by clause. All the base table columns selected in the select list need not be specified in the Group . Regarding the Summary query which of the following is true a. 4000 c.0 ? a. we can pass a numerical value in first parameter b. All the base table columns selected in the select list should be specified in the Group by clause. The default value is not optional d. 16 c. 2000 b. The latest date that can be stored in oracle 8 a. It gives an error b. What happens when the first date is greater than the second date that is passed to the months_between function in oracle 8. 7.9999 d. 4000 c. a. None of the above. The default value the lpad function takes is a. b. 254 d. Dec 31st . Both a & b d. 31st Dec 4012 A. What is the size of Varchar in Oracle 8.0 ? a. 254 d. The no. What is the size of Varchar in Oracle 7.D b. none of the above 2. 31st Dec 4011 A.D c. The order of the base column list in the select statement need not be same in the Group by clause. which of the following is true about add_months a. None of the above 4. none of the above 5.

Package specification should contain return type of a function b. None of the above 13. to enter the same values that has been stored in other table then what constraint do u use? a. Index d. Which of the following is true about the packages ? a. NULL is same as blank date. c. NULL is same as 0. Both a & b d. u will get the result as NULL b. Synonym b. None of the above 17. None of the above. used to mention referential integrity b. sequence 11. The size of the parameter should not be mentioned in a procedure c. Entity integrity b. A DDL statement is preceded and followed by commit. 14. Which of the following is true about NULL? a. 19. Both a & b d. which of the following is true a. Which of the following is true for update clause? . Both a & b d. used for creating views c. Both a & b d. For a DDL statement. View c. 15. The size of the parameter should be mentioned in a procedure. need not be negative b. If you want to restrict the user. None of the above. None of the above 18. c. Referential Integrity c. What does the length function returns when applied to column of char datatype ? 12. there is no such restrictions c. d. none of the above 16. None of the above. then second parameter a. All the DML statements gets committed even when u get an error after writing DDL statement. c. How do u mask the user from entering irrelevant data ? a. If the first parameter is negative. ??REFERENCING?? in oracle 8 a. b. Package specification need not contain return type of a function c. 10. Which of the following is true about procedures a. when an arithmetic operation is performed on NULL. None of the above. b. should be positive d.by clause. there is no such word in oracle 8 d.

View having a column which contain operation can be manipulated c. Both a & b d. Both a & b d. Which of the following is true about outer joins a. None of the above 23. What does OFA stands for ? a. Dropping the table and creating once again d. We can update two base tables simultaneously b. We cannot write a procedure in package body which has not been specified in package specification. Optimal Flexible Architecture . Which of the following is true about procedure and a function a. The outer join symbol should be present on any one side of the join. 27. Which of the following is true about packages a. Oracle Financials Applications c. None of the above 20. Using alter command b. A function has to return a value and a procedure don??t have to c. View based on two base tables can be manipulated b. b. U can use a subquery in SET clause of the UPDATE statement. We can delete two tables simultaneously c. Both a & b d. Which of the following is true for delete? a. The outer join return the rows from the two tables that donot have matching records in other table. None of the above. None of the above 26. None of the above. The outer join symbol may be present on both the sides of the join c. b. c. 22. Delete statement can be given without writing where clause. In oracle 8 which of the following is true about manipulating the view a. We can write a procedure in package body which has not been specified in package specification. Both a & b d.a. Procedure should return a value and a function may not return a value b. View based on two base tables can be manipulated b. Oracle Flexible Architecture b. Both a & b d. b. 25. In oracle 7 which of the following is true about manipulating the view a. View having a column which contain operation can be manipulated c. How do u rename a table ? a. c. None of the above 21. None of the above. d. Using RENAME c. None of the above 24. Both a & b d.

SQL*Plus's predecessor was called UFI (User Friendly Interface). SQL> disconnect SQL> exit What commands can be executed from SQL*Plus? One can enter three kinds of commands from the SQL*Plus command prompt: 1.d. -s or -silent -.Connection details /nolog -.SQL*Plus commands are used to set options for SQL*Plus.Do not login to Oracle. Valid options are: userid/password@db -. How does one use the SQL*Plus utility? Start using SQL*Plus by executing the "sqlplus" command-line utility. SQL*Plus is frequently used by DBAs and Developers to interact with the Oracle database. . You will need to do it yourself. It can be used interactively or driven from scripts. its interface was extremely primitive and anything but user friendly. Not recommended for beginners! @myscript -.start sqlplus in silent mode. UFI was included in the first releases of Oracle.BUF? ?h How does one restore session state in SQL*Plus? ?h What is the difference between @ and @@? ?h What is the difference between & and &&? ?h What is the difference between ! and HOST? ?h What is the difference between ? and HELP? ?h How does one enable the SQL*Plus HELP facility? ?h How can one disable SQL*Plus prompting? ?h How can one trap errors in SQL*Plus? ?h How does one trace SQL statement execution? ?h How can one prevent SQL*Plus connection warning messages? ?h How can uses be prevented from executing devious commands? ?h How can one disable SQL*Plus formatting? ?h Can one send operating system parameters to SQL*Plus? ?h Can one copy tables with LONG columns from one database to another? ?h Where can one get more info about SQL*Plus? What is SQL*Plus and where does it come from? SQL*Plus is a command line SQL and PL/SQL language interface and reporting tool that ships with the Oracle Database Client and Server. None of the above Oracle Questions ?h What is SQL*Plus and where does it come from? ?h How does one use the SQL*Plus utility? ?h What commands can be executed from SQL*Plus? ?h What are the basic SQL*Plus commands? ?h What is AFIEDT.Start executing script called "myscript" Look at this simple example: sqlplus /nolog SQL> connect scott/tiger SQL> select * from tab. SQL*Plus commands .

buf".for more information see the Oracle SQL FAQ. edit files. When new features were added to UFI. When you issue the command "ed" or "edit" without arguments. SPOOL Send output to a file. The rest of this page is dedicated to SQL*Plus commands.BUF and opened in the default editor.lst START Run a SQL script file (short: @) How does one restore session state in SQL*Plus? Look at the following example (Oracle8): SQL> STORE SET filename REPLACE SQL> (do whatever you like) SQL> @filename What is AFIEDT. Eg "spool x" will save STDOUT to a file called x.sql SET Modify the SQL*Plus environment eg. the last SQL or PL/SQL command will be saved to a file called AFIEDT.BUF is the SQL*Plus default edit save file. eg. / What are the basic SQL*Plus commands? The following SQL*Plus commands are available: ACCEPT Get input from the user DEFINE Declare a variable (short: DEF) DESCRIBE Lists the attributes of tables and other objects (short: DESC) EDIT Places you in an editor so you can edit a SQL command (short: ED) EXIT or QUIT Disconnect from the database and terminate SQL*Plus GET Retrieves a SQL file and places it into the SQL buffer HOST Issue an operating system command (short: !) LIST Displays the last command executed/ command in the SQL buffer (short: L) PROMPT Display a text string on the screen. They presumably needed to keep the name short for compatibility with some of the odd operating systems that Oracle supported in those days. PL/SQL blocks . Eg prompt Hello World!!! RUN List and Run the command stored in the SQL buffer (short: /) SAVE Saves command in the SQL buffer to a file.). Eg: BEGIN DBMS_OUTPUT. Eg "save x" will create a script file called x. the file name was "ufiedt. Eg SHOW ALL.for more information see the Oracle PLSQL FAQ. These commands do not have to be terminated with a semicolon (.buf".format reports. SQL*Plus commands do not interact with the database. as is the case with SQL commands. The name "Advanced UFI" was never used officially.BUF? AFIEDT. edit the command buffer. SQL commands .PUT_LINE('Hello World!'). SHO PAGESIZE etc. Eg: SELECT * FROM TAB. and so on. In the prehistoric days when SQL*Plus was called UFI.buf" and then to "afiedt. SET PAGESIZE 23 SHOW Show environment settings (short: SHO). 3. END. as the name was changed to . it was the initially named Advanced UFI and the filename was changed to "aufiedt. short for UFI editing buffer. SHOW USER 2.

Both "?" and HELP will read the SYSTEM. To use the help facility. (Note: use "$" under MVS. "&&" is used to create a permanent substitution variable as with the DEFINE command and the OLD_VALUE or NEW_VALUE clauses of a COLUMN statement. or one specified with a full or relative path. whereas "!" will not.buf" What is the difference between @ and @@? The @ (at symbol) is equivalent to the START command and is used to run SQL*Plus command scripts. This is normally used for nested command files. For example.SQL*Plus before this version was released. to get help on the SELECT statement. @@ will start a sqlplus script that is in the same directory as the script that called it (relative to the directory of the current script). Look at this Unix example: cd $ORACLE_HOME/sqlplus/admin/help sqlplus system/manager @helptbl sqlplus system/manager @helpindx sqlldr system/manager control=plushelp. A single @ symbol runs the script in your current directory. Eg: SQL> SELECT * FROM TAB WHERE TNAME LIKE '%&TABLE_NAME.ctl sqlldr system/manager control=sqlhelp. VMS.SQL: select info from system. type: HELP SELECT How does one enable the SQL*Plus HELP facility? To enable HELP for SQl*Plus. not "!") What is the difference between ? and HELP? There is no difference.ctl sqlldr system/manager control=plshelp.%'. run the supplied SQL and Loader scritps to create the Help table and to populate it. type HELP followed by the command you need to learn more about. and Windows environments. you can access the help table with a simple script like this: HELP. What is the difference between ! and HOST? Both "!" and "HOST" will execute operating system commands as child processes of SQL*Plus.ctl If the HELP command is not supported on your operating system. What is the difference between & and &&? "&" is used to create a temporary substitution variable and will prompt you for a value every time it is referenced. or one that is found in you SQLPATH or ORACLE_PATH. You can overwrite the default edit save file name like this: SET EDITFILE "afiedt. Once you have entered a value it will use that value every time the variable is referenced. The difference is that "HOST" will perform variable substitution (& and && symbols).HELP table (if available) and shows help text on the screen.help where upper(topic)=upper('&1') .

3. This will print the result of your query." to trap operating system errors and the "WHENEVER SQLERROR . an explain plan and high level trace information. Run the PLUSTRCE. Use the "SET AUTOTRACE ON" command to trace SQL execution. Eg: SQL> WHENEVER OSERROR EXIT 9 SQL> WHENEVER SQLERROR EXIT SQL.SQLCODE How does one trace SQL statement execution? 1. To turn this off: SET ESCAPE ON SET ESCAPE "" SELECT 'You & me' FROM DUAL. Create a PLAN_TABLE using the UTLXPLAN. or SET DEFINE ? SELECT 'You & me' FROM DUAL. This script is in $ORACLE_HOME/rdbms/admin... Note: You can disable substitution variable prompting altogether by issuing the SET DEFINE OFF commmand..SQL script..SQL script from the SYS database user./ How can one disable SQL*Plus prompting? If you run a script that contains "&" symbols SQL*Plus thinks that you want to prompt the user for a value." command to trap SQL and PL/SQL errors. 2. D X Execution Plan ---------------------------------------------------------0 SELECT STATEMENT Optimizer=CHOOSE 1 0 TABLE ACCESS (FULL) OF 'DUAL' Statistics ---------------------------------------------------------0 recursive calls 2 db block gets 1 consistent gets 0 physical reads 0 redo size 181 bytes sent via SQL*Net to client . This script is located the in $ORACLE_HOME/sqlplus/admin. How can one trap errors in SQL*Plus? Use the "WHENEVER OSERROR . Look at this example: SQL> set autotrace on SQL> select * from dual.

SQL script. I get the following errors: Error accessing PRODUCT_USER_PROFILE Warning: Product user profile information not loaded! You may need to run PUPBLD. How can one disable SQL*Plus formatting? Issue the following SET commands to disable all SQL*Plus formatting: SET ECHO OFF SET NEWPAGE 0 SET SPACE 0 SET PAGESIZE 0 SET FEEDBACK OFF SET HEADING OFF SET TRIMSPOOL ON These settings can also be entered on one line. NULL. Eg.SQL script. connect as SYSTEM and run @PUPBLD from the sqlprompt.: SET ECHO OFF NEWPAGE 0 SPACE 0 PAGESIZE 0 FEED OFF HEAD OFF TRIMSPOOL ON Can one send operating system parameters to SQL*Plus? One can pass operating system variables to sqlplus using this syntax: sqlplus username/password @cmdfile.sql var1 var2 var3 Parameter var1 will be mapped to SQL*Plus variable &1. NULL. This table is created by the PUPBLD. eg. How can users be prevented from executing devious commands? Yes. 'OPS$%'.256 bytes received via SQL*Net from client 3 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed How can one prevent SQL*Plus connection warning messages? When I go to SQl*Plus. Note that this table is not used when someone signs on as user SYSTEM. etc.sql consists of: . var2 to &2.SQL as SYSTEM This messages will stop appearing when you create the PRODUCT_USER_PROFILE table in the SYSTEM schema. NULL). 'DISABLED'. This is performed by the PUPBLD. command authorization is verified against the SYSTEM. 'CONNECT'. to disable all users whose names starts with OPS$ from executing the CONNECT command: SQL> INSERT INTO SYSTEM.PRODUCT_USER_PROFILE VALUES ('SQL*Plus'.sql '"test parameter"' dual Where x. NULL. Go to the $ORACLE_HOME/sqlplus/admin directory.PRODUCT_USER_PROFILE table. Look at this example: sqlplus scott/tiger @x.

deletion of duplicate rows. IMAGE FROM IMAGES. Can one copy tables with LONG columns from one database to another? About the fastest way of copying data between databases and schemas are by using the SQL*Plus COPY statement.query for self join.pre query trigger 5. 2. 9. exit 5.select '&1' from &2. Interview questions: 1. .order of triggering of when new item instance.mastere ?Vdetail relation 6. 10.format triggers in report.report parameters.post query trigger 4. 3. 8.report triggers 7. Look at this example: COPY FROM SCOTT/TIGER@LOCAL_DB TO SCOTT/TIGER@REMOTE_DB CREATE IMAGE_TABLE USING SELECT IMAGE_NO.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->