add

About Me

My photo
Oracle Apps - Techno Functional consultant

Friday, December 13

Sql/Plsql Interview




1)      Write a query to get the second maximum salary in a table?
A)    We will use
       Select max (sal) from EMP where sal < (Select max (sal) from EMP)

2)      Write a query to get output in the format given below
Deptno                Maxsal             Employ   
10                1500                scott
20                2000                empname
30                3000                empname         
A) We will use
 select deptno,ename,sal from emp e where sal = (select MAX(sal) from emp where
 deptno = e. deptno)

3)      Write a query to get EMPNAME,MANAGER,DEPTNO write single query?
A)  Select w.empno,w.ename,e.ename,e.deptno from emp w,emp e where w.mgr = e.empno
4) Write a query for deleting DUPLICATEROWS
A)  delete from table where(rowid, columnname) not in
     (select min(rowid),columnname from table group by columnname);

5) What are the rules when you are dealing with Set operations?
A)    We have 4 set operations are like   1.union   :With out duplicates
                                   2.union all:with duplicates
                                   3.intersect:common rows from two or more queries
                                   4.minus:present in first query and not in second query.
      in set operations we are going to perform operations on select statements.
6) What are the types of indexes?
A)  Indexes are used when we have more records in a table and we are searching records most of the time that indexes are usefull.
There are two types of INDEXES.
Benefits  of  indexes are
q  Index is used to search for required rows quickly.
q  Index occupies extra space. Index is stored separately from table.
q  Index contains the values of key – column on which index is created – in the ascending order.
q  Just like the page number in book index, Oracle index stores ROWID – a unique value to internally identify each row of the table. For each entry in the index a key and corresponding ROWID are stored.
q  Oracle uses index only when it feels the index is going to improve performance of the query.


Note: ROWID is a unique value assigned to each row created in a table. Once ROWID is assigned to a row it doesn’t change during the lifetime of the row. Oracle access rows internally using ROWID.



1)B-TREE Index:For high cordinality fields these indexes will be created in index file all the key values are in sorting order.
2)BIT MAP Index: For low cordinality fields we will create bit map index.

   CREATE [UNIQUE][BITMAP] INDEX ON TABLE(FNAME)

7) What are constraints what are table level constraints and column level constraints?
A)CONSTRAINTS ARE USED TO CHECK VALIDATIONS BEFORE INSERTIN DATA INTO TABLE.AND ALSO PROVIDE RELATIONSHIP BETWEEN TABLES.
TABLE LEVEL CONSTRAINTS:1. UNIQUE CONSTRAINT
                                   2. PRiMARY KEY CONSTRAINT
                                   3.CHECK CONSTRAINT
                                   4.FOREIGN KEY CONSTRAINT
COLUMNLEVEL CONSTRAINTS: 1. UNIQUE CONSTRAINT
                                   2. PRiMARY KEY CONSTRAINT
                                   3.CHECK CONSTRAINT
                                   4.FOREIGN KEY CONSTRAINT
                                   5.NOT NULL CONSTRAINT
                                                   6.DEFAULT CONSTRAINT.       
      
9) How can you disable an INDEX?
A) alter index indexname disable;
10) How can you find out View is updatable or not?
    A)  We can find out the view is up datable or not by seeing the definition of that view.
        if the view is create base on a single table and it doesn't contain any aggregate functions
   Then that view is updateable
        If the is created based on a join stmt, or it contains any aggregate functions then that view
   is not updateable.
11) What are the types of views?
      A)There are 4 types of views
    1) Inline view: When we write a query inside of another query from clause then we will call it as inline view.
    2) Updateable view: if the view is created from a single table and if doesn't contain any aggregate functions then that view is called as updateable view.
    3) Non updateable view: if the view is created from two or more tables and if it contains any aggregate functions, joins, union commands then that view is called as non updateable view.
    4) Materialized view: MATERIALISED view definition includes any no of aggregates as well as any no of joins in several ways. behaves like an index. it is used to increase the query execution performance.





12) What are the snap shots and materialized views?
A)  Snap shots: a snap shot is a replication of master table from a single point-in-time
Snapshots are updated by one or more master tables via individual batch updates are known as refresh.
MATERIALIZED VIEWS: materialized view will be created to access the base table information and it is not possible to do DML actions on that
        The validations of the base table will be reflected in two ways
1980                  Automatically using COMMITT option.
1981                  Manually executing the refresh method.

          SYNTAX: CREATE MATERIALIZED VIEW MVNAME
                            REFRESH [FAST/COMPLETE]
                            ON [COMMIT/DEMAND] AS
                          SELECT STMT;
13) What is the syntax for seaquence Cycle?
SEQUENCES ARE CREATED TO GENERATE SEQUENCE NO’S on  primary key or unique  keys IN ORACLE.
SYNTAX: CREATE SEQUENCE SEQNAME
          [INCREMENT BY VALUE
          START WITH VALUE
          MAXVALUE   VALUE/MAXVALUE
          MINVALUE   VALUE/MINVALUE
          CYCLE/NOCYCLE
                CACHE N/NO CACHE];
14) What are CBO and RBO modes?
A) CBO - costbased optimizer
    RBO - rule based optimizer
 It is like a comment which we will use to pass a message to engine where mentioning optimizer = RBO or CBO

15) What is sub query and correlated subquery and difference between these two?
A)    Subquery: it is a type of query we will mention a query inside of another query where clause. In This main query will execute based on the result of the sub query.
Sub query is used to filtering   data in select statement

    B)Correlated subquery : It is also like a subquery .In the ordinary subquery the subquery will execute only once but in the correlated subquery sub query will executes how many times the main query executes.

16) What is the difference between IN & Exist?
A) IN: We will use this IN operator if we wants to find out a value in a list of values.

EXIST: We will use exist operator when we want to find out a value from Result of the subquery.

17) What is MUTATING ERRORS?
A) A mutating table is a table that is currently being modified by an UPDATE, DELETE, or INSERT statement, or it is a table that might need to be updated by the effects of a declarative DELETE CASCADE referential integrity constraint.
      ORA-04091: table APP is mutating, trigger/function may not see it
      ORA-06512: at "TRG_GET_ID_APP", line 4
      ORA-04088: error during execution of trigger 'TRG_GET_ID_APP'


18) GRANT and REVOKE syntaxes?
A) Grant syntax:
Grant privileges on tablename to username;
Revoke Syntax:      
Revoke privileges From username on tablename;

19) What is the syntax of VIEW, SEQUENCE, INDEX, and SYNONYMS?
A)      syntax view: create or replace view viewname as select * from tablename where condition
Sequence:      create sequence sequencename
incremented by incrementor ,
start with startno,
maxvalue,
no cycle,
no cache;
            index:create index indexname on tablename(columnname);
            synonym:create (public/private) synonym synonymname for tablename.

20) Write query to get output given below?
       Year        count
1982                  10
1983                   12
A) select count(empno),to_char(hiredate,'yyyy') year from emp group by to_char(hiredate,'yyyy')

21) What are TO_DATE, TO_CHAR, NVL, DECODE, SUBSTR, LTRIM, and RTRIM?
A) To_date:
to char: used to format the DATE in the desired way.
NVL: NVL is used when we are dealing with null values if we want to show any another value isted of NULL then we will use NVL.

DECODE: decode is a function in sql it works  like a IF-ELSE statement .

SUBSTR: If we want to get particular part of a string we will use substr.
         SUBSTR('STRING',STARTINGPOS,LENGTH);
LTRIM: is used to remove the spaces before a string while camparing two strings.
RTRIM: is used to remove spaces after the string.

22) What four back ground process?
      These are the processors running behind the scene and are being to perform certain maintainence activities or to deal with the abnormal conditions arising th lifetime of instance.
A)    DATABASE WRITER : (DBW0 THROUGH DBW9 AND DBWA THROUGH DBWJ): This process writes dirty buffers present in the database buffer cache to data files.
B)    LOGWRITER(LGWR):this process wrotes data from redo log buffers to redo log files on disk.
C)    ARCHIVER:
D)    SYSTEMMONITOR
E)     PROCESSMONITOR
F)     CHECKPOINT
G)    LOCKMONITOR

23) If we delete the base table wether the synonym will there or not?if we use that synonym what type of error we will get?
A) IF we delete the base table even through synonym will exist.

If we use that synonym the following errors will come
ORA-00980: synonym translation is no longer valid
ORA-00903: invalid table name
ORA-04043: object SCOTT.T1 does not exist


24) How to create a view with out a table? After creation of view can we insert the data or not?
A)    we can create view with out a table by using force command.
Syntax: create force view viewname as select * from t1;
Here  t1 table not exit;
25) How to select definition of procedure from sql which has alredy created?
A) we can get the data by using SPOOL command in the following way

SPOOL d:\oracle\data.txt
Select text from user_source where name like 'proc name';
SPOOL OFF;

26) What Rollback,Savepoint and Commit?
A) ROLLBACK: used to cancel the all previous unsaved transactions.
COMMIT: used to save the data perminently.
SAVEPOINT: if we want to save upto the particular transactions then we will divide the transactions with savepoints.
27)Can we change the datatype and size in a table when data is there and when data is not there?
A) Yes we can change the data type and size when there is no data
When there is data we can change the size but we cannot change the data type.
Yes we can add a column to a table.
PL/SQL DOCUMENTATION

1. EXPLAIN PL/SQL, PL/SQLBLOCK?
   PL/SQL is a procedural language that has both interactive SQL and procedural language constructs such as iterations, conditional branching.
PL/SQL block is a block-structured language. Each block is supposed to perform one                            logical unit of job.

2. MAIN BLOCKS OF PL/SQL?
   PL/SQL block is having 3 parts
·         Declaration part
·         Executable part
·         Exception handling part

Declaration part: PL/SQL enforces the declaration of variables before their use in executable portion.
All variables (or) constants have to be declared in this block.
      Syntax: variable name data type;
Executable part:  this is main section of the block, all the procedural and SQL statements are defined here.
Exception handling part: this is used for responding to runtime errors encountered by a program.
MANDATORY BLOCKS IN PL/SQL: executable block in PL/SQL is the mandatory block other two blocks declarative and exception blocks are optional blocks.
3. WHAT IS NAMED BLOCK?
    Named blocks are the blocks that have a name associated with 3 types
·         Labeled blocks: blocks with a label that gives the block name.
·         Sub program: consists of procedures and functions.
·         Triggers: consists of pl/sql block that is associated with an event that occurs in the database.
4. WHAT IS ANONYMOUS BLOCK?
   These blocks are generally constructed dynamically and execute only once.
    Block is often issued from a client program to call a sub program in the database.
5. EXPLAIN % TYPE, %ROWTYPE IN PL/SQL?
   % TYPE: it is used to give data type of predefined variable and database column.
                    Ex: declare
                           Item code    number (10);
                   I code          item code% type;
  %ROWTYPE: it is used to provide record data type to a variable.
                           The variable can stop row of the table (or) row fetched from the cursor.
6. DATA TYPES IN PL/SQL?
·         Scalar data type: number, character, Boolean, date/time.
·         Composite data type: table, record.
·         Reference data type: ref cursor. 


·         Lob types: (large objects)    Bfile (variable stores locator of the file)
BLob (for storing large raw data like graphics or                   sound data)
Clob(stores location, which provides location of data)
7. EXPLIAIN PL/SQL TABLES, VARRAYS, NESTED TABLES?
  
   PL/SQL TABLES: these are temporary array like objects used in pl/sql block.
                                  These can have one column & a primary key.
                                  These are declared in the declarative part of any block, sub program
                                  Or package.
Syntax: STEP1: type<name of type> is table of<col def> index by binary-integer.
             STEP2: <pl/sql-tablename> <type name>


NESTED TABLES: similarly to PL/SQL block along with adding the ability to store 
                                  nested tables within a database table will be there.
                    
                Syntax: type table name is table of table type;
VARRAYS: this are implemented differently, elements are inserted into varray starting at   index1 upto maximum length declared in varray.

                Syntax: type type-name is varry(max-size) of element-type(not null);

8. CAN WE PASS PL/SQL TABLE AS APARAMETER TO ANOTHER PROCEDURE OR NOT, IF SOHOW WILL IT BE PASSED? GIVE THE SYNTAX?

9. EXPLAIN AUTONOMOUS TRANSACTION, RESTRICT-REFERENCE AND EXCEPTION-INIT?
AUTONOMOUS TRANSACTION: it is used when ever in a transaction with in another transaction should be committed or rollback irrespective of parent transaction commit or rollback.
RESTRICT-REFERENCE: it is used to assert the purity level for the user-defined functions.
Syntax: PRAGMA RESTRICT-REFERENCES (function-name,                                                                    [rnds], [wnds], [rnps], [wnps])

EXCEPTION-INIT: used for associating a named exception with in a particular oracle error
  
  Syntax: PRAGMA EXCEPTION-INIT (exception-name, oracle error number)

10. WHAT IS PRAGMA?
     Pragmas are compiler directives, it serves as instructions to the pl/sql compiler.
     The compiler will act on the pragma during the compilation of the block.






11. WHAT IS EXCEPTION HANDLING IN PL/SQL& TYPES OF EXCEPTION?
      Exception handling is used to handle the errors according to users way and functions
      It will be used to generate error messages and replacing default messages.
      These are 2 types standard & user defined exceptions.
STANDARD EXCEPTIONS 0R BUILT IN EXCEPTIONS: -
      Oracle package standard had defined exceptions for certain common errors
Some of them are:
·         Too-many-rows          (ora-01422)
·         No-data-found            (ora-1403)
·         Value-error                 (ora-06502)
·         Zero-divide                 (ora-01476)
·         Invalid-number           (ora-01722)
·         Dup-value-on-index    (ora-00001)
·         Program-error             (ora-06501)

USER DEFINED EXCEPTIONS: The user defines these exceptions and these are used to take care of abnormal conditions that are application specific.
12. EXPLAIN SQL CODE & SQLERRM?
     These are functions, which return error code and error message of the recent error.
SQL CODE: it returns error code as negative number.
                      For NO-DATA-FOUND it returns ‘+100’.
SQL ERRRM: it returns length of the messages in 512 characters, which includes code, message, tablename&column name.
        Syntax: ercode: =sqlcode;
                 Er msg: =sqlerrm;
                Insert into error table values (errcode, ermsg);

13. WHAT IS RAISE-APPLICATION-ERROR?
     This is a procedure used to generate user-defined errors.
              Syntax: raise-application-error (errorcode, errormessage, true/false);
           Error code- (range is –20000 to-20999).
           Error message (length is 2048 bytes).
           True/false- true indicates error is put in stack
                                 False is mentioned then the error replace all the previous errors.
14. What is a cursor?
      Cursor is a named private SQL area from where information can be accessed. Cursors                 are required to process rows individually for queries returning multiple rows.

15. What is a cursor for loop?      
Cursor for loop implicitly declares %ROWTYPE as loop index, opens a cursor, fetches rows of values from active set into fields in the record and closes when all the records have been processed.

16. For Update of Clause: -when declaring the cursor itself we will be mentioning for update clause then we can update the records inside of the cursor.
17. Where Current Of Clause: -



18. PROCEDURE: -A procedure is a logically grouped set of SQL and PL/SQL statements that perform a specific task. it may or may not return a value.
    Procedures are made up of
·         Declaration part
·         Executable part
·         Exceptional part
Here declarative part and executable part are mandatory while exceptional part is optional.
Syntax: -CREATE OR REPLACE PROCEDURE procedure name {IN, OUT, INOUT}
                        {IS, AS}

                Variable declaration;
                Constant declaration;
               Begin
                            PL/SQL subprogram body;
               Exception
                      Exception block;
           End;
19. FUNCTION: - A function is a logically grouped set of SQL and PL/SQL statements that perform a specific task. It returns a value.
Functions having
        Declaration block
        Executable block
        Exception block
Syntax: - CREATE OR REPLACE FUNCTION function name {IN}
                Return data type {IS, AS}

                Variable declaration;
                Constant declaration;
               Begin
                            PL/SQL subprogram body;
               Exception
                      Exception block;
           End;

20. Difference between procedure and function?
·         Procedures may or may not return a value but function should return a value
·         Procedures we cannot use inside of select statement
Functions are used inside of select statement


21. PARAMETER MODES (IN, OUT, INOUT)
     IN: - when we pass the parameter in IN mode that will work like a constant inside a procedure.
    OUT: -this is used to return a value.
    INOUT: -this will be using in both way.
22. ACTUAL PARAMETERS: -while calling the procedure will pass the values this will be calling it as actual parameters
    The procedure declaration variables will be receiving these values called FORMAL parameters
23. PROCEDURE OVERLOADING: -multiple procedures that are declared with the same name are called overloading procedures.
24. FUNCTION OVERLOADING: - multiple functions that are declared with the same name are called overloading functions.
25. PROCEDURE, FUNCTION FORWARD DECLARATION: -






26. PACKAGE: -A package is an oracle object, which holds other objects with in it
these objects may be
·         Procedures
·         Functions
·         Cursors                      , which are logically related.
·         Variables
·         Constants

27. COMPONENTS OF PACKAGE: -
      A package has usually two components
              Specification
          Body
A package specification declares the types, memory variables, constants, exceptions, cursors and subprograms that are a variable for use.

A package body fully defines cursors, procedures and thus implements the specification.

28. Package body with out specification is possible or not?


29. Can we define cursor inside with out package? If so how to call the cursor?




30. What is cursor variable?





31. We created specification and body, if we delete specification whether the body will present or not?





32.we have package body and specification inside of the package we are writing procedure to insert some thing to a table, if we delete the table, the above package will valid or not?




33.we have package and we have grants to execute that package inside of that we have table, here we don’t have privileges to this table? Whether this table will execute or not?






34. TRIGGERS:
        Trigger is a pl/sql block, which will fire automatically whenever some event occurs like insert, update and delete.

Types of triggers: -

    Event
                Insert
                Update                            level
                Delete
                                                Row level
Time                                                statement level
                Before
                After      
       
Row level triggers: -it will fire for each row
Statement level triggers: -it will fire only once for the whole statements.

35. Can we use DDL command inside of trigger? If not then what is the alternative.



36. TRIGGER PREDICATES?

     These are 3 types
·         Inserting
·         Updating
·         Deleting
Whenever we want to do inserting inside of the trigger that time we will be using inserting predicate trigger.llly for updating and deleting.

37.  : NEW and :OLD
        Both will be used in triggers to get the new and old values.
   In case of update both NEW and OLD are valid.
   In case of delete only OLD is valid.
   In case of insert only NEW is valid.
Both: NEW and :OLD will work only for row level triggers.






























REPORTS:-


1) What is ANCHOR?
A) These are used to determine the vertical and horizontal positioning of the child object relative to its position.
Tool which we will use in the layout to destroy the field horizontally or vertically whenever field gets null value.
 When we have multiple fields in layout if any one of the field gets null value the next field should gets automatically adjusted in that place that time we will use anchor.

2) What is frame?
A) Frame is the place in the layout model where we place an object to display only once in the report output.

3) What is repeating frame?
A) It is also a place in the layout editor where we place an object to display repeatedly
 In report output.

4) What are action, format and validation triggers?
A) ACTION TRIGGERS: action triggers are pl/sql procedures executed when button is selected
EX: calling a report

     FORMAT TRIGGERS: format triggers are pl/sql functions which we will use to display layout object in the report.
     The return type is always true or false.
EX: no data found we will write a validation trigger for this boiler plate text.

     VLIDTION TRIGGERS: we will use to validate the lov values in the parameter form. 

5) What are Report Triggers?
A) Report triggers are 5 types. They are
                1) Before parameter form.
          2) After parameter form.
          3) Before report trigger.
          4) Between pages.
          5) After Report trigger    
         
6) What is the difference between after parameter form and before report trigger?
A) After parameter for will fire in Parsed time.
     Before report trigger will fire in the execution time.

7) What are Bind and Lexical parameters?
A Bind parameter: Bind parameter is a variable which we will use to pass the value.
    ‘:’ before any variable in a query is called as bind variable.
   Lexical parameters: Lexical parameter is a parameter which we will use inside of a query. These parameters we can use any where inside of query.
EX: select, from, where, order by

8)    What are system parameters?
A)  There are around 78 system parameters. Some of them are
                    1) Background
          2) Currency
                          3) Copies
                          4) Decimal 
                          5) Desformat
                          6) Desname
                          7) Destype
                          8) Mode
                          9) Orientation
                         10) Destintion

9)    What are formula, summary and placeholder columns?
A)  Formula column: It is a pl/sql block which will calculate a value based on our logic and it will return one value.

Summary column: It is a pl/sql block which we will use to print the result of aggregate functions like sum, avg and count either at page level or at report level.

Placeholder column: It is a column which will have the data type and value. It works like global variable in reports.
          If we want to return more than one value then we will use placeholder column in formula column.




10)        How to run a report from a report?
A)  We will place button in the repeating frame of layout editor. And in that button code we will write code as follows
Srw.run_report (‘path of .rdf file’, paramform = no, dept = “‘||:deptno||’”’);
Save the report and generate it.

11)       What is user exit?
A)  User exit is an program which will transfer the control from report execution to another third generation language it will the required data & it will complete the remaining report execution process.
12)       What is srw.do_sql, srw.message, srw.referene.srw.program_abort?
A)    srw.do_sql:  used to execute DDL commands in reports.
Syntax: srw.do_sql (‘create table tname’);

Srw.message: used to display message in reports.

Srw.reference: used to refer the variables in formula columns.

Srw.program_abort: This exception stops report execution and raises the following exceptions.
Rep-1419 pl/sql program aborted

13)       How to execute DDL commands in reports?
A)  We will execute the DDL commands in reports by using the following user exit.
                Srw.do_sql (‘create table tname ()’);

14)       How to change the layout dynamically?
A)  A lay out can be changed dynamically by passing the parameters.

15)       How to implement lexical parameters in reports?
A)  & before any parameter is called as lexical parameters. We can use these parameters in any class  of the query
          Ex: select, where, order by

16)       What is the report global variable?
A)  Place holder column is the report global variable. We can return more than one value by using place holder column.

17)       What is matrix report?
A)  Display information row  ,column and  cell  format

18)       The report output is 10 pages then how many times between pages report trigger will fire?
A)  It will fire 8 times. Between pages report trigger will not fire for 1st and last page.

19)       Report will not have any parameters then before and after parameters will fire or not?
A)     yes


REPORTS


1. What is bind variable and lexical variable?
        Bind variable in report are parameters that are referenced with a colon in front of them, for example, :P_customer_no.  This is considered a Bind reference. If you reference the same parameter proceeded by an ampersand, as &  p_customer_no. Then its considered to be a lexical reference. A bind paramerter can only contain one value, while a lexical parameter can replace an entire clause example order by where clause.

2. What is the use of n anchor in the report?
        Anchors are used for determining the vertical and horizontal positioning of a child object relative to its parent.

3. What is placeholder column?
        Placeholder column datatype and a value can be set in PL/SQL like reports triggers or formula column.

4. What is a data link?
        Data link relate the results of multiple queries. A data link causes the child query to be executed once for instance of its parent group.

5. What are the report triggers?
a)      Report triggers execute at specific times during the execution and formatting of your report
b)      After parameter from trigger
c)      After report trigger
d)     Before parameter form trigger
e)      Before report trigger
f)       Between pages trigger.

6. What is the validation trigger in report parameters property
        Validation triggers are executed when parameter values are specified on the command line and when u accept the runtime parameter form. This is used for validating parameter foe example “Todate” can’t be earlier than  “from date” etc.

7. What is confine mode?
        In layout model if confine mode is on child objects can’t be moved outside their enclosing parent object and when it is off child object can be moved outside their enclosing parent objects. Toolbar it shows locks symbol.

8. What is flex mode?
        In layout model when it is on parent borders “stretch” when child object are moved against them. And when it is off parent borders remain fixed when child object are moved against them.


FORMS


1. What are alert in D2k forms?
        An alert is a model window that displays a message notifying of some application condition. For example, do you want to save changes? Are you sure u want to exit? Or customer name can’t be bland ….

2. What is property class?
        A property class is an object that contains a list of properties and their settings. Other objects can be based on property class. An object based on a property class can inherit the setting of any property in the class that makes sense for that object.

3. What is the difference b/w property class and visual attribute?
        Visual attributes only for the visual properties of the item like font, color,  whereas property class is for all the possible properties of objects.

4. What is an LOV?
        LOV is a scrollable popup window that provides the use with selection list.

5. What are record groups and what are its types?
a)      A record group is an internal form builder data structure that has a column/row framework similar to a database table.
b)      Query record group – associated select statement
c)      Non query Record group – doesn’t have query but can be changed programmatically.
d)     Static record group – cant be changed programmatically.


6. What is restricted built_ins?
        Any built_ins subprogram that initiates navigation is restricted. This includes subprograms that move the input focus from one item to another and those that involve database transactions. Restricted build_ins are not allowed in trigger that fire in response to internal navigation.

7. What are categories of trigger?
a)      block – processing triggers. Related to record mgmt in a block eg: when clear block.
b)      Interface event triggers : interface event triggers fire in response to events that occur in the form interface eg: when button pressed. When  checkbox changed.
c)      Master_detail triggers : from builder generates master/detail triggers automatically when a master/detail relation is defined b/w blocks. This is to enforce co-ordination b/w 2 blocks. For example, on clear details.
d)     Message handling triggers :  message handling triggers fire in response to default messaging events. To trap or recover an error. Eg on_error, on_message
e)      Navigational triggers : navigational triggers fire in response to navigational events. For instance clicking on a text item from another block eg: pre block, post text item, when new item instance.
f)       Query_item trigger : Eg; pre query and post query
g)      Transactional triggers : Fire in response to events that occur as a form interacts with the database. Eg: on_delete, pre_commit
h)      Validation trigger : when form validated data in item or record e: when validate item.

8. What is the sequence of events fired while cursor moves from an item from i1st block to an item in 2ndblock?
        When validate item of that item A
        Post_text_item of A
        When validate record
        Post record
        Post block
        Pre block
        Pre record
        Pre text item
        When_new_block_instance
        When_new_Record_Instance
        When_new_item_instance
9. what are types of canvas?
a)      Content : The default specifies that the canvas should occupy the entire content area of the window to which  it is assigned.
b)      Stacked : Specifies that the canvas should be displayed in its window at the same time as the window’s content canvas. They are usually displayed programmatically and overlay some portion of the content view displayed in the same window
c)      Vertical toolbar canvas : specifies that the canvas should be displayed as a vertical toolbar under the menu bar of the window.
d)     Horizontal toolbar canvas : specifies that the canvas should be displayed as a horizontal toolbar at the left side of the window to which it is assigned.


10. How do I attach menu to a form?
        Form à properties àfunctional à menu source àFile
        Forms à Properties àfunctional à menu module àname of menu (main menu

1. What are 2 types of data blocks object?
a)      Data blocks : data blocks are associated with data within a database. Data blocks can be based on database table, views, procedure or transactional triggers.
b)      Control blocks : in contrast a control block is not associated with the database and the item in or control block do not relate to table columns within a database.

2. How do I dynamically change the title of window?
a)      set_window_property built-in

3. Name few system variables in forms?
        A system  variable is a form builder variable that keeps track of an internal form builder state. For example, system.Block_status, system, mode, system.from_status.


1. How to attach reports in oracle application?
        The steps are as follows:
a)      Design you report
b)      Generate the executable file of the report.
c)      Move the executable as well as source file to the appropriate products folder.
d)     Register the report as concurrent executable
e)      Define the concurrent program for the executable registered
f)       Add the concurrent program to the request group of the responsibility

2. What are different report triggers and what is their firing sequence?
        There are fiver report trigger:
a)      Before report
b)      After report
c)      Before parameter form
d)     After parameter form
e)      Between pages
The firing sequence for report trigger is
Before parameter form – After parameter form – before report – between pages – after report.
   
APPS FAQ’S
            How to register a report?
a)      Register concurrent àProgram à executable
b)      Register concurrent àprogram à Define
c)      Attach it to appropriate request group security à responsibility àRequest
d)     FTP RDF in respective top/report/US

2. How to CREATE a VALUE SET? What are the different types of value sets?
Enter Application à Validation àSet
Types of value set
a)      Independent
b)      Dependent
c)      Table
d)     Pair
e)      SPECIAL DELIVERY translate dependent
f)       Translatable independent

3. Name few types of execution method in concurrent program executable
a)      Oracle reports
b)      Sql * Plus
c)      Host
d)     Java stored procedure
e)      Pl/sql stored procedure
f)       SQL * Loader
g)      Spawned
h)      Java CCP
i)        Multilanguage function
j)        Immediate
k)      Request set stage function

                                 
4. How to register a form?
a)      Define Application àform
b)      Define Application àfunction à give link to form defined in step I
c)      Go to Application àmenu à Attach function to menu
d)     FTP from to AU_TOP, generate it and copy to respective TOP

5. What are the steps to develp a form>
a)      Copy appstand.fmh, Template.FMB, required pll in local directory
b)      Change the registry for pll path. Save template.fmb as the new form name from name and start developing the form
c)      FTP form in AU_TOP and generate fmb using f60gen and copy.fmx in respective top/forms/us directory

6. what is the use of custom.pll?
Custom.pll is used for customizations such as form, enforcing business rules and disabling fields that are not required for site without modifying  standard apps forms.

7. How to PROGRAMATICALLY submit the request?
a)      with the help of standard API
Find_Request. Submit_request
8. What is request set?
With the help of request set we can submit several requests together using multiple execution paths. Its collection of concurrent programs like reports procedures grouped together.

9. What are user exists in reports? What are user exist available in apps?
a)      A user exit is a program written and then linked in to the report builder executable user exist are written when content need to be passed from report builder to that pgm, which performs some function and then returns control to report builder.
1.      FND SRWINIT, FND SRWEXIT, FND FORMAT_CURRENCY, FND FLEXIDVAL, FND FLEXSQL.
10    What is the API used for file I/o operation ? or which API is used to write to request log and request output?
a)      fnd_file.put_line (Fnd_file.log, ‘message’);
b)      fnd_file.put_line (fnd_file.out. ‘message’);

11. how do I programmatically capture application user_id?
Fnd_profile.value (‘user_id’) or fnd_global.user_id.

12. what are flexfields?
A flexfield is a field made up of segments . each segment has a name and a set of valid values. There are two types of ff’s: key ff, DFF

13. Which are the 2 parameters required to be defined when a program is registered as pl/sql stored procedure
 ERRBUF, RETCODE

14. can we register executable/concurrent program programmatically then how?
Yes we can. It can be done with standard package fnd_program, fnd_program.executable, fnd_program.register.

15. what changes need to be made if a setup is changed from a single org to multi org?
Org_id should be added as a parameter in a report and report should be run for specific org_id only

16. What are sub functions? How is it different from form?
A sub function is a securable subset of a forms functionally
a)      forms appear in a navigator window and can be navigated to sub functions do not appear in the navigator window and cant be navigated to
b)      forms can exist on this own sub functions can only be called by ____ embodied within a form, they cant exist on their own

17. what is message dictionary?
Message dictionary allows defining messages which can be used in application without hard coding them into forms or programs.

18. What is the token in concurrent à program àparameters window?
 For a parameter in an oracle report program, they keyword is parameter specified here. The value is case sensitive for example P_CUSTOMER_NO

19. What are different validation defaults types and default value in current àprogram à parameter window?
a)      constant
b)      profile
c)      SQL statement
d)     Segment

20 I have a concurrent program that involves lot of inserts and updates on a huge basis where do I specify rollback segment etc
        concurrent à program àsession control

21. How do I change the priority of my concurrent program?
        Log on as system admin concurrent à program à program àpriority, enter numerical value in this field  so it will take the request which has higher priority.

22. What is incompatibility?
        When a program or list of programs is defined as incompatible means that defined program is not compatible with incompatible program list and cant run simultaneously in same conflict domain.





23. What is data group?
        A data group defines the mapping b/w oracle applications and oracle ID’s. A data group determines oracle database accounts a responsibilities forms, concurrent programs, and reports connect to


SQL /DATABASE


1. What is the difference b/w subquery and correlated subquery?
a)      In a normal subquery, the inner query is executed first and then the result are passed off to the parent query.
b)      In a correlated subquery, the outer query is executed first and process each row, the subquery is using. The info supplies by the result of the outer query.

2. How to delete duplicate rows from a table?
        Delete test t1 where rowed< (Select max(rowed) from test t2 where t2.col1 = t1.col and t2.col2 = t1.col1.

3. what are the types of database triggers?
         Ro. Total no of database triggers are 12. They are
a)      Row level : once for every row affected by the triggering statement such as a trigger fired by an update statement that updates many rows.
b)      Statement level : once for the triggering statement, no matters be many rows it affects.
c)      Before : before triggering statement is executed.
d)     After: After triggering statement is executed.
e)      Instead of : triggers provider a transparent way of modifying that cant be modified through DML statement.




4. what is mutating error on a table?
        It happens when a trigger on a table tries to insert, update or ever select the table of where trigger is being executed.

5. What is synonym? What is view?
        A synonym is an alias for any table, sequence, procedure function or package. It requires no storage other than its definitions in the data dictionary.
        A view is stored query, from one or more tables.

6. What is database link?
        A database link is a pointer that defines a one_way communication path from an oracle database server to another database server

7. What is a dynamic SQL?
        DDL statement can’t be used within PL/SQL using “Execute Immediate”

8. What are set operator?
        Set operators combine the result of two component queries into a single result queries containing set operator are called components queries
        UNION : all rows selected by either query
        UNION ALL : All rows selected by either query, including all duplicate
        INTERSECT : All distinct rows selected by both queries
        MINUS : All distinct rows selected by the first query but not the second.

9, What is savepoint?
        Savepoint are intermediate markers within the context of a transaction savepoint divide a long transaction into smaller parts we then have to option later of rolling back work performed before the current point in the transaction but after a declared savepoint within the transaction.

10. What are the benefits of using package? Name few oracle supplied package
        An entire package is loaded into memory when a procedure within the package is called for the first time. This load is completed in one operation, as opposed to the separate loads required for stand alone procedure. A package body can be replaced and recompiled without affecting the specification. Definition of procedure/variable can be private or public. For example I have 5 procedure out of 3 procedures can be used by a DBMS_SQL, DBMS_JOB, UTL_FILE.

11. What is deadlock?
        A deadlock can occur when two or more user are waiting for data locked by each other. Deadlocks prevent some transactions from continuing to work.







3. What is the use of cursors in PL/SQL? What is REF Cursor?
        The cursor is used to handle multiple row query in PL/SQL. Oracle uses implicit cursors to handle its queries. Oracle uses unnamed memory spaces to store data used in implicit cursors, with REF cursors you can define a cursor variable, which will point to that memory space and can be used like pointers in our 3GL’s

4. What is record group?
        Record group are used with LOV’s to hold SQL query for your list of values. The record group can contain static data as well it can access dates from database tables through sql queries
________________________________________________________________________
       
1. What is flexfield? What are DFF& KFF?
        In oracle application field made up of segments each segment has Assigned name and a set of valid values .oracle application uses flexfield to capture into about your organization

2. What are Autonomous Transaction? Give Scenario where you have used Autonomous transaction In your report ?
        An Autonomous transaction is an independent transaction started by another transaction , the main transaction ,Autonomous transaction lets you suspend the main transaction do SQL operations ,commit or rollback those operation then resume the main transaction Once started an autonomous transaction fully independent .It shares no locks ,resources .or commit dependencies with the main transaction so ,you can log events increment retry counters ,and soon even if the main transaction rolls back More important, Autonomous transaction help you build modules reusable software component . for example  Stored procedures can start and finish autonomous transaction there own .A calling application need not know about a procedures autonomous operations, and the procedures need not know about the application transaction content.
Scenario: you can use autonomous transaction in your report for writing error message in your database  table.

3. What is the use of trigger in the form?
        Triggers are used in forms for event handling u can write PL/SQL code in trigger to respond to a particular event occurred in your forms like when user presses a button or when he commits the form
The different types to triggers available I forms are
        a)Key Trigger 
        b)Navigational Trigger 
        c)Transaction triggers  
        d)Message Triggers 
        e)Error triggers 
        f)Query triggers

4. What is the use of temp table and interface table ?
        Temporary table are used in I/F programs to hold the intermediate data. The data is loaded into temporary first and then after validation through the PL/SQL program, the data is loaded into the interface table


5. What are the steps to register concurrent program in APPS?
        The steps to register the concurrent prom in APPS are follows
        a)Register the prom as concurrent prom for the executable
        b) Define the concurrent prom for the executable registered
        C)Add the concurrent program to the request group of the responsibilities

6. How to pass parameters to a report ? Do you have to register them with AOL?
        U can define parameters in the define concurrent prom form there is no need to register the parameters with AOL .But you may have to register the value sets for those parameters
Do you have to register feeder program of interface to AOL?
Yes, U have to register the feeder program as concurrent prom to APPS

7. What are the forms customization steps
        Steps are as follows
        a)Copy the “Template fmb”1 and “Appstand.fmb” from AU_top/Forms/us. Put it      in custom directory .
the Libraries(FNDSQF,APPCORE,APPDAYPK,GLOBE,CUSTOM,JE,JA,VERT)are automatically attached
b)Create/open new forms .then customise
c)save this form in corresponding module.

8. How to use flexfield In report?
There are two ways to use flexfield in reports one is to use the views(table name+`_kfv`or `_dfv`) created by apps, and use the concatenated segment column that holds the concatenated segments of the key or descriptive flexfield
                           (or)
To use the FND user exits provided by apps

9. what is KFF, DFF?
KFF : # unique identifiers, storing key into # used for entering and displaying key into
For example oracle general uses a KFF called Accounting flex field to uniquely identify a general account.
DFF : # to capture additional info # to provide expansion space on your form with the help of []. [] represents DFF

10 Difference b/w KFF and DFF

KFF
DFF
Unique identifiers
To capture extra info
KFF are stored in segments
Stored in attributes
For KFF there are FF qualifier and segment qualifiers
Context_sensitive ff is a feature of dff. (DFF)
                                     
_______________________________________________________________________

1. Will you attach reports in apps?
2. How will you attach forms in apps?
3. what is the use of token in reports?
4, what are various execution methods in reports?
5. How will you get set of books id dynamically in reports?
        By using profile option called GL_SET_Of_Books_id
6. How will u capture AFF in reports?
        By using user exits
7. What are dynamic  insertion?
8. What is code combination Id?
9. Custom.Pll various events in custom.PLL
        Zoom_available, custom.standard, Custom.event.
10. When u defined concurrent program u defined in compatibilities 
        what is the meaning of incompatibilities
        simultaneously cant allow running programs
11. What is hierarchy of multi_org?
        Business groups à sob àle à operating unit à inv organisation

12. What is difference b/w org_id, organisation_ID
        ORG_ID is an operatin unit
        Organisation_ID is inventory organisation.

13. What are profile options?
        Defines the way application behaves ( more than 200 types)
14. Value set. And validation types
        value set define suitable values for your segments
        table, none, dependent, independent, special, pair
15. What is flexfield qualifiers?
        Additional properties for your segment
16. What is your structure of AFF?
17. How will u enable DFF?
18. How many segments are in AFF?
        Minimum, maximum
19. What are user exits?
20. When u defined CCP there is one checkbox use in SRS what is meaning of this suppose I do now want to call report through SRS how will I call report then?
        SRS:= (Standard Request submission)
21. What is difference b/w request group and data group?
        Request group : group is set of CCP and request sets
        Data Group : integrates all your oracle apps modules

22. What is meaning of $flex $dollar
        using this we call a value set with another value set.

_______________________________________________________________________

TRIGGERS:   is a Stored Procedure that is fired when a DML operation is performed.
Types: before, after, for each row, for each statement
Instead of Triggers: This trigger is defined on a view rather than on a table.

INDEX:  It is a database object used to improve the performance of data retrieval.

VIEW:            It is a virtual table based on the actual table.

PACKAGE:    is a PL/SQL construct that allows related objects to be stored together. Contains package specification and body. Ex: DBMS_SQL, DBMS_JOBS

FUNCTION:  is a object that takes one or more arguments and returns only one value.

PROCEDURES:    Can return more than one parameters. Function always returns one value whereas procedure may or may not return a value.

TYPES OF BLOCKS:   1.Anonymous 2.Named 3.Subprograms (Procedures, Functions) 4.Triggers

TYPES OF TRIGGERS:

   Insert ---|   |- Before   -|   |-- each row
   Update ---|---|  After |---|
   Delete ---|    |_      -|   |-- statement level

PURITY LEVEL:  What data structure the function can read or modify is based on purity level.
        WNDS -> No Database State         WNPS -> Write no package State

DELETE DUPLICATE ROWS:   Delete from emp where rowid not in (select max(rowid) from emp group by empno);

EXCEPTIONS:      is an identifier in PL/SQL that is raised during the execution of block that terminates its main body of actions 1.Oracle error occurs 2.User defined error

PREDEFINED EXCEPTION:      1.NO_DATA_FOUND 2.TOO_MANY_ROWS 3.INVALID_CURSOR 4.ZERO_DEVIDE
Function for trapping the user defined exception: sqlcode & sqlerrm

USERDEFINED EXCEPTION:   sql%notfound, Raise exception

        If SQL%NOTFOUND THEN
                RAISE APPLICATION_ERROR('Not Valid');
        END IF;

PL/SQL CURSOR:        Two types 1.Implicit 2.Explisit
In order to execution of sql statement Oracle will allocate some memory area called as context area.
Cursor is pointer to this context area.
Cursor Attributes:
%ISOPEN %ROWCOUNT %FOUND %NOTFOUND


DIFFERENCE BETWEEN %TYPW AND %ROWTYPE:

%TYPE   provides datatype of variable or a database column to that variable.
%ROWTYPE provides record type that represents an entire row of a table or view or column selected in the cursor.

PRAGMA:      Tells the compiler to associate an exception with an Oracle error.

NORMALIZATION:     is the process of removing redundant data from relational tables by splitting it to smaller tanbles.

DATAGROUP:      is a collection of modules which can integrate with each other through transfer reference and reporting data.

SELF JOIN:    Join the table with itself.

EQUI JOIN:   Joining two tables by equating two common columns.

NONEQUI JOIN: Joining two tables by NOT equating two common columns. 

OUTER JOIN:        Joining 2 tables so that the query can retrieve rows that do not have corresponding join value in the other table. (+ is included in the join)

SUBQUERIES:      is a query who's return values are used in filtering condition of the main query.

CORRELATED SUBQUERIES:  is a query that has the reference to the main query.

INSTR: Returns the n th position.

SUBSTTR: returns character.

CARTESIAN: results from fault query, it is a row in the result.

BIND VARIABLES: are variables to which we can pass data at runtime either character or number.

COMPOSITE DATATYPES: are Table/record/nested table/varray also known as collections. And has internal components that can be manipulated individually.

APPLICTIONS

CONCURRENT MANAGER:      4 Types
1.Internal Manager 2.Standard Manager 3.Conflict Resolution Manager 4.Specialized concurrent Manager.

BACKEND:   FND_CONCURRENT_REQUESTS
                FND_CONCURRENT_PROGRAM

FND_PROGRAM_REGISTER:
---------------------
Application Program:      Application
Executable name:            Name of the registered Executable
Executable Application:  Name of the app where executable ins registered.

FND_PROGRAM_EXECUTABLE:
-----------------------
Executable Name:           Name of the executable.
Application:            Name of the executable application.
Short Name:                    Short name of the exe
Execution Method: 'Flex Rpt' 'Flex SQL' 'Host' 'Immediate' 'Oracle Reports' 'PL/SQL stored procedure' 'Sql*loader' 'Sql*Plus' 'Sql*report'
Execution File Name:     Regd. for all but immediate prog.

FND_REQUEST.SUBMIT_REQUEST
---------------------------
Name:      Submit Request
Application:    Short name for the application under which the program is registered.
Program:  Concurrent program name for which the request has to be submitted.

       
REGISTERING TABLE:      AD_DD.REGISTER_TABLE
                                AD_DD.REGISTER_COLUMN

CONCURRENT MANAGER:      runs concurrent process allowing multiple tasks simultaneously.

CONCURRENT PROCESS: runs simultaneously with other tasks to help complete multiple tasks at once without interruption.

GENERAL AIM: AIM 10, 20, 30, 40 -> DBA

AIM 50 -> Automatic column mapping
AIM 60 -> Manual column mapping
AIM 70 -> Default values, data assignments to be included.
AIM 80 -> Unit Testing & results of UAT
AIM 90 -> Coding

IF -> Interface, RD -> Requirement Definitions, BR -> Business requirement,
MD -> Module Design, CV -> Conversion

PROCESSING CONSTRAINTS: Restricting particular responsibility on an entered information.

PROFILE LEVEL:        1.Site 2.Application 3.User 4.Responsibility

KEY FLEX FIELDS:    A flexible data field made up of segments, each segment has a name we define and a set of values that we specify.

DESCRIPTIVE FLEX FIELD:     A flexfield that our organization can customize to capture additional information regd. by our business.


CV 10 -> Define Conversion Scope, objectives and approach
CV 20 -> Prepare Conversion Strategy
CV 30 -> Prepare Conversion Standards
CV 40 ->         Prepare Conversion Statements
CV 50 -> Perform Conversion Data Mapping
CV 60 -> Define Manual Conversion Strategy
CV 70 -> Design Conversion Programs
CV 80 -> Prepare Conversion Test Plans
CV 90 -> Develop Conversion Program
CV 100 ->       Perform Conversion Unit Test
CV 110 ->       Perform Conversion business objects Tests
CV 120 ->       Perform Conversion Integration Tests
CV 130 ->       Install Conversion Software
CV 140 ->       Convert & Verify Data






FORMS

Registering Forms:
We Take Template from .fmb  table from AV_TOP/11.50/Forms/us
CHANGE THE RESPONSIBILITY TO Application Developer
Goto Application-Register-Register it
Goto Application -Function Give
Function     User Function      Give
Click on Form Tab.
Function        Form     Application
Than goto Application- menu & give submenu function description.
Change responsibility to
Security- Define -User
GLOBAL VARIABLE in forms is declared in when new forms instance
Trigger for LOV in forms : Key-list-value
FORM MODULES : 4 types- 1)Alerts 2)Form Modules 3)Menu modules  4) PL/SQL libraries
Order of TRIGGER FIRING : When new form instance pre-form, when-new-block-instance, when new item interface post form
OBJECT LIBRARY : can be used to store function, procedure, package.
ATTACHED LIBRARY : is used to avoid any change in source code
FORMS IN GL :
FNDFFMDC-Descriptive Flexfield segment
GLXSTBKS-Set of books
GLXSTCAL-Accounting calendar
Alert is a model window which has predefined manager


REPORTS
3 types of Reports-SQL,RDF,RXI
2 Parameters in the reports - 1)user (Lexical, Bind) 2) system
LEXICAL PARAMETERS: Are always Characters type used with the where clause used to facilitate the range parameters i.e., if the wishes to se a list of invoices between two given dates.
DECODE : To Achieve dynamic column order or column constant, we use decode statement in reports
FORMAT TRIGGER/ANCHOR : Allows a developer to show or hide objects using PL/SQL I the simplest form a trigger can be placed on certain columns to show or hide based on user parameters
If two reports differ by say one col the decode statement con be used to consolidate these two reports into one
TOKEN :For user parameters we define a token

REPORT REGISTRATION :
CUS_TOP/REPORTS?US-Object script
GOTO Application Developer
Concurrent -Define Executable.
Give Execution Method -Oracle Reports
     Executio filename
THEN goto PROM
Attach the executable to the Application
Click on parameters window
Give seq.parameters & Token
Types of Reports generated-HTML,PCL,PDF
 post script, Text& HTML.
CUSTOM REPORTS : Made use of PRIS(Property records information system)which is PACE existing Asset accounting system .An ASCII file will be extracted from PRIS balance after all the month end processing is done for the business period prior to conversion. All the data will be extracted from the legacy source file to load into oracle fixed Asset using interface program FA_MASS_ADDITIONS. The Table that receives data in Orapps are FA_MASS_ADITIONS FA_CATAGORIES  FA_LOCATION  FA_ASSET_KEY_WORDS. which is used to regenerate reports

5TRIGGER in the reports : Before report ,After report before parameters ,After parameters form between pages.
Before Report -SRW.USER_EXIT(FND,USER_INIT) 
After Report -SRW.USER_EXIT(FND.USER_EXIT)

COLUMNS :Summary Column, Formula & Place holders columns
POXPOBPS: Blanket Purchase Order Status Report.
Parameters : PO Numbers from to
          Buyer Name Vendors From to  
           Sort by PO Number Or Buyer
POXPOSTD: PO Detail Report.
          Title, Buyer Name, Items from to
          PO Number From to Vender
          Status : Approved Or in process
User Exit -A user exit is a function written in a 3rd Generation Language Like C, Cobol, FORTRAN Etc, to do special purpose processing which is linked into the SQL* Forms Executable files SQL Statements and Pl/SQL Block can be embedded into a user exit
When the user exit gets called from the from by a SQL* from trigger, processing control is temporarily paused onto the user exit when a user exit is done, it reaches an integer value to the SQL* from which indicates success, failure or Fatal error.
Types of Reports

Tabular
Master detail
Form
Mailing Label
Matrix



FREQUENTLY ASKED QUESTIONS AND ANSWERS FOR SRW 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. What do I need to do to upgrade reports from SRW 1.0 to 1.1?

   User must export all the 1.0 SRW tables and import them into database
   with SRW 1.1. Then he should use 'moverep' to move all the data in
   these 1.0 tables to 1.1 tables. 1.0 tables prefixed 'FR_' while
   1.1 tables prefixed 'SRW_'.

2. Can I use 'dumprep' to dump my 1.0 reports and load them into 1.1 SRW
   by using 'loadrep'?

   Even though SRW provides utilities called 'dumprep' dumping reports
   from database into .rex files and 'loadrep' to load these ascii .rex
   on other hosts and operating systems, user should not use them to
   upgrade their SRW from 1.0 to 1.1, due to different table structures
   and definitions between these 2 versions.

3. When installing SRW, it asks if I want to install one central set of
   tables or each user has its own set of tables, which one should
   I choose? Why?

   All the report data and format info are stored in tables.
   These so called 'SRW_' tables may be created under the 'system' account
   such that they may be shared by all SRW users, or these tables may be
   created under individual accounts - each user has his own set of
   tables.
   In order to use one set of central tables, the user must have TPO
   installed. Having one set of central tables makes managing SRW easier
   and causes all the reports be shared by all users.

4. Why do I get message 'Unable to access the SQL*ReportWriter V1.1 tables.'
   when logging in SRW, even though the user is a valid database account?

   If SRW is installed with one set of central tables, then all SRW users
   except 'system' need to be added by running a script called 'srw.admin'
   under ?/sqlreport/admin.
   If SRW is installed with local tables for each user, then the 'SRW_'
   tables must be created under the user account. The script needs to be run
   is called 'srw_iloc.sql' under ?/sqlreport/admin or the 'srw.admin' and
   choose the right option.

5. What is srw.admin? How should I make use of it?

   Srw.admin is a script for SRW administrative uses. It adds, drops a user,
   relinks user exit into the executables, etc.
   One should go to ?/sqlreport/admin directory, set enviornment variable
   by 'setenv LOG test' for error logs when running the script. Then type
   'srw.admin' and choose the appropriate actions.
   'srw.admin' runs other sql script within the same directory, such as
   srw_icen.sql, srw_grnt.sql, etc.

6. How do I relink user exits into SRW executables?

   In the IUG there is a section regarding creating user exits, but not very
   clear. The steps for creating forms user exits in the IUG will be also
   helpful.
   After the iapxtb.o is created, one should use the 'srw.admin' script
   and choose the 'Relink the executables with user exits'. Remember to
   set the 'LOG' enviornment variable for error checking and move your
   own copy of iapxtb.o to the directory you desire.

7. Why do I get 'ORA-2112 pcc: select...into returns too many rows' when
   running SRW?

   It is likely that user has duplicate rows in the system.product_profile
   table. The reason may due to duplicate import or install of SRW system
   tables.
   The way to deal with the problem is to remove all the duplicate rows
   in this table.

8. What is the product_profile table for?

   The product_profile table gives DBA control of application usage and
   resouce limit, such as restricting the page limit for SRW users, or
   removing the host command from normal SQL*Plus users.
   Currently only SRW and SQL*Plus make use of this table.
   Refer 'SQL*Plus User's Guide and Reference 3.0' Appendix E and sql
   script 'pupbld.sql' under ?/sqlplus/admin for more info.

9. When looking at the system SRW table, I find 'SRW_SUMMARY' and
   'SRW__SUMMARY', what is the difference?

   The difference is that 'SRW_SUMMARY' is a view of 'SRW__SUMMARY'.
   Overall, 'SRW_' are views with slight modification of the original
   tables 'SRW__'.

10. Why do I get 'Out of space on device' when I try to print out a
    report on printer?

    The 'Out of space' message usually comes from /tmp being full.
    The reason is that SRW first generates a temporary file in the
    /tmp directory, then spool it out through 'spoolcmd' under
    ?/sqlreport/admin/printer.
    The workaround to this problem is to set enviornment variable
    SRW_TMP to directory with more disk space.

11. Why does SRW generate a temporary file in /tmp?

    SRW uses a two-pass scheme for generating report. For example, in order
    to print out '1 of 10 pages' at the top of each page, the first pass
    gives the total number of pages, while the second pass fill in the
    number '1' at the appropriate page.
    The temporary file generated in /tmp with file name such as 'SRW06536001'
    makes the second pass possible.

12. What is the difference between spoollp.sh, spoolpr.sh and spoolcmd?

    'Spoolcmd' is usually linked with either spoollp.sh or spoolpr.sh,
    depending on the version of unix system (att or bsd). 'spoollp.sh'
    uses 'lp' to spool reports, while 'spoollpr.sh' uses 'lpr'.

13. I tried to print out reports on a DEC printer and have specified
    the printer definition as 'decland' for landscape mode. However,
    the report still came out in protrait mode. What did I do wrong?

    User who wants to print out landscape report should first find
    the escape sequence which will change the printer from protrait
    mode to landscape mode. Then he should modify the ':is=' cause
    within the 'printdef.dat' file under ?/sqlreport/admin/printer
    by adding the escape sequence.
    Generate a new 'decland' printer definition file using SRW
    utility 'printdef' (refer SRW User's Guide for the usage).

14. Is it possible to mail a report to an Oracle*Mail user within SRW?

    'Mail' is one of the options for 'DESTYPE' parameter. User should
    also specify the 'DESNAME' as Oracl*Mail userid whom the report is
    supposed to be sent.



ORACLE PURCHASING TABLES

segment1 - is the system–assigned number you use to identify in forms and reports.


Table Name                             Columns                                                 

PO_REQUISITION_HEADERS_ALL        REQUISITION_HEADER_ID, PREPARER_ID,                                                      SEGMENT1, SUMMARY_FLAG, ENABLED_FLAG
        stores information about requisition headers. You need one row for each requisition header you
create. Each row contains the requisition number, preparer, status, and description.SEGMENT1 is the number you use to identify the requisition in forms and reports(unique).

PO_REQUISITION_LINES_ALL               REQUISITION_LINE_ID,REQUISITION_HEADER_ID,
                                        LINE_NUM,LINE_TYPE_ID,CATEGORY_ID,
                                        ITEM_DESCRIPTION,UNIT_MEAS_LOOKUP_CODE ,
UNIT_PRICE, QUANTITY, DELIVER_TO_LOCATION_ID,
                                        TO_PERSON_ID, SOURCE_TYPE_CODE      
        stores information about requisition lines.line number, item number, item category, item description,
need–by date, deliver–to location, item quantities, units, prices, requestor, notes, and suggested supplier information for the requisition line. 
        LINE_LOCATION_ID - purchase order shipment line on which you placed the requisition. it is null if you
have not placed the requisition line on a purchase order.
        BLANKET_PO_HEADER_ID and BLANKET_PO_LINE_NUM store the suggested blanket purchase agreement
or catalog quotation line information for the requisition line.
        PARENT_REQ_LINE_ID contains the REQUISITION_LINE_ID from the original requisition line if you
exploded or multisourced this requisition line.


PO_HEADERS_ALL                    PO_HEADER_ID, AGENT_ID, TYPE_LOOKUP_CODE,
                                        SEGMENT1, SUMMARY_FLAG, ENABLED_FLAG          
        information for your purchasing documents.There are six types of documents that use PO_HEADERS_ALL
RFQs, Quotations, Standard purchase orders, Planned purchase orders, Blanket purchase orders, Contracts
can uniquely identify a row in PO_HEADERS_ALL using SEGMENT1 and TYPE_LOOKUP_CODE or using
PO_HEADER_ID.BLANKET_TOTAL_AMOUNT for blanket purchase orders or contract purchase orders.
if we use copy document Oracle Purchasing stores the foreign key to your original RFQ in FROM_HEADER_ID.

PO_LINES_ALL                               PO_LINE_ID, PO_HEADER_ID, LINE_TYPE_ID, LINE_NUM
        stores current information about each purchase order line.  CONTRACT_NUM reference a contract
purchase order from a standard purchase order line.

PO_VENDORS                             VENDOR_ID, VENDOR_NAME, SEGMENT1,
                                        SUMMARY_FLAG, ENABLED_FLAG          
        information about your suppliers.purchasing, receiving, payment, accounting, tax, classification, and general information.

PO_VENDOR_SITES_ALL             VENDOR_SITE_ID, VENDOR_ID, VENDOR_SITE_CODE
        information about your supplier sites.a row for each supplier site you define. Each row includes the site address, supplier reference, purchasing, payment, bank, and general information. Oracle Purchasing uses this
information to store supplier address information.

PO_DISTRIBUTIONS_ALL            PO_DISTRIBUTION_ID, PO_HEADER_ID, PO_LINE_ID,LINE_LOCATION_ID, SET_OF_BOOKS_ID,
                                        CODE_COMBINATION_ID,QUANTITY_ORDERED,
                                        DISTRIBUTION_NUM      
        contains accounting distribution information fora purchase order shipment line.You need one row for
each distribution line you attach to a purchase order shipment.
        There are four types of documents using distributions in Oracle Purchasing:
Standard Purchase Orders, Planned Purchase Orders, Planned Purchase Order Releases, Blanket Purchase Order Releases
        includes the destination type, requestor ID, quantity ordered and deliver–to location for the distribution.

PO_RELEASES_ALL                   PO_RELEASE_ID, PO_HEADER_ID, RELEASE_NUM,
                                        AGENT_ID, RELEASE_DATE          
        contains information about blanket and planned purchase order releases. You need one row for each release you issue
        for a blanket or planned purchase order. Each row includes the buyer, date, release status, and release number. Each release must have at least one purchase order shipment

PO_VENDOR_CONTACTS                VENDOR_CONTACT_ID, VENDOR_SITE_ID        
stores information about contacts for a supplier site. You need one row for each supplier contact you define.Each row includes the contact name and site.





PO_ACTION_HISTORY                  OBJECT_ID, OBJECT_TYPE_CODE , OBJECT_SUB_TYPE_CODE,     SEQUENCE_NUM          
        information about the approval and control history of your purchasing documents. There is one record in
this table for each approval or control action an employee takes on a purchase order, purchase agreement, release, or requisition.
        stores object_id -- Document header identifier,OBJECT_TYPE_CODE --- Document  type, OBJECT_SUB_TYPE_CODE --Document subtype SEQUENCE_NUM --Sequence of the approval or control action for a document

PO_REQ_DISTRIBUTIONS_ALL  DISTRIBUTION_ID, REQUISITION_LINE_ID, SET_OF_BOOKS_ID,
                                        CODE_COMBINATION_ID,REQ_LINE_QUANTITY,
                                        DISTRIBUTION_NUM   
        stores information about the accounting distributions associated with each requisition line.


PO_LINE_LOCATIONS_ALL    LINE_LOCATION_ID, LAST_UPDATE_DATE,                                                    LAST_UPDATED_BY, PO_HEADER_ID, PO_LINE_ID,                                               SHIPMENT_TYPE
        contains information about purchase order shipment schedules and blanket agreement price breaks. You need one row for each  schedule or price break you attach to a document line. There are seven types of documents that use shipment schedules:
        RFQs,Quotations,Standard purchase orders,Planned purchase orders,Planned purchase order releases,Blanket purchase orders, Blanket purchase order releases
        Each row includes the location, quantity, and dates for each shipment schedule. Oracle Purchasing uses
this information to record delivery schedule information for purchase orders, and price break information for
blanket purchase orders, quotations and RFQs.












No comments: