PLSQL Interview Questions

7

Click here to load reader

Transcript of PLSQL Interview Questions

Page 1: PLSQL Interview Questions

41. What is use of APPDAYPK library?Ans: By using this library you can change the functionality of menu action and tool bar actions, and youcan add custom help files in the application.APPDAYPK contains the packages that control the Oracle Applications Calendar feature.42. What is use of FNDSQF library?Ans: FNDSQF contains packages and procedures for Message Dictionary, flexfields, profiles, and concurrent processing. It also has various other utilities for navigation, multicurrency, WHO, etc.FND_CURRENCY: Dynamic Currency APIsFND_GLOBAL: WHO Column MaintenanceFND_ORG: Organization APISFND_STANDARD: Standard APIsFND_UTILITIES: Utility Routines43. What is a reference trigger? Can we modify a reference trigger?Ans: Reference trigger is a trigger, definition of the trigger will be in some other file.We can, But Oracle Application advise against modifying the reference trigger. Because this change will affect the whole application.44. Why we have to create packages instead of procedure / function?Ans: If we create procedure/function, this will be compiled every call of the procedure/function, But if you createpackage it will not complied every call, It will increase performance of the application.45. Can you comment your form? How?Ans: Yes.You can give comment of the from in Form module “comment window”.By using FND_Standard.Form_info procedure you can comment your form, this is in Pre_Form trigger.46. Which form objects we should not use?Ans:Activex, Vbx, Ocx, OleTimerMouse TriggerOpen_FormCombo BoxTest_io, Host built-in47. How can we change the profile value?Ans: By using FNDSQF library we can change the profile values.48. What are the triggers we should not modify?Ans: Close_this_window, Close_window, Export, Folder_Action, Key-Commit, Key-Edit, Key-Exit,Key-Help, Lastrecord, Menu_to_Appcore, Standard_Attachment, When_window_closed,When_form_navigate, Zoom49. Shall we delete exiting triggers?Ans: We should not delete any form level trigger. But Oracle application notencouraging deletion of any trigger.50. What is the difference between writing code in Programme Unit and Library Files?Ans: The code written in Programme unit is form’s specific, whereas code written in Library files, can be used across the forms.

 Ans:PRE-FORM WHEN-NEW-FORM-INSTANCE PRE-BLOCK

Page 2: PLSQL Interview Questions

 WHEN-NEW-BLOCK-INSTANCEWHEN-NEW-ITEM-INSTANCE POST-BLOCK, POST-FORM

52. What is the utility used to call the report from the forms?Ans: RUN_REPORT53. What is a Property Class? Different methods of creating property class?Ans: Property Class is defining properties of objects along with their settings.  The property class inheritance allowsthe user to perform global changes very quickly and efficiently.Methods:Object Navigator MethodProperties Window Method54. WHEN-NEW-FORM trigger written at Form Level, Block Level and Item Levelwhich one will fire first?Ans: The trigger written at the lower level Item Level Fires first.55. In the previous question circumstance, is it possible to change the order of trigger Execution? If Yes, where it needs to be changed?Ans: Yes, in the trigger property (Before, After, Default)by changing the attributes.56. Form Registration StepsAns: Save as the TEMPLATE.fmb as your continent form name such as emp.fmbDelete the BLOCK_NAME, DATA_BLOCK, BLOCK_NAME and  BLOCK_NAME in Data Block, Canvas and Window list.Create window, canvas and block in the module and assign the subclass information to properties of them.Change the code in the package of app_custom in the program units.when_window_closedif (wnd = 'window_name') thenapp_window.close_first_window;end if;when_window_openedif (wnd = 'window_name') thenGO_BLOCK('Block_name');Change the code in the pre_form trigger as bellowapp_window.set_window_position('window_name',NULL,'block_name');

Copy the fmb and pll file into AU_TOP/forms/US and AU_TOP/resource directories respectively and compile them.

Form======================f60gen F20601.fmb Userid=apps/g00g1emv F20601.fmx /apps/qoedv2/appl_top/xxcpd/11.5.0/forms/US

pll   =====================f60gen Module=XXCPDLXPLAVA.pll Module_Type=LIBRARY Userid=apps/g00g1e

In front-end application, go to the following pathApplication DeveloperApplicationform and create one new recordApplication DeveloperApplicationFunction  create one function and link the form to this function.

Page 3: PLSQL Interview Questions

Application DeveloperApplicationMenu and create the menu and link the function to this menu.57. Create the messages in Apps.Ans: Go to Application DeveloperApplicationmessage and create one message in the form and run request.Go to Viewrequests, select submit new requestSelect the ‘Generate Message’ program and give  input parameters for this form.You can access this messages in the form level code as below.

Fnd_message.set_name(‘Application_id’, ‘Message_Name’)Fnd_message.show.

2. Fnd_message.set_name(‘Application_id’, ‘Message_Name’)Fnd_message.set_token(‘Token_varialbe in the message Dictionary’, Value)fnd_message.show.58. PRE– FORMAns:FND_STANDARD.FORM_INFO(’$Revision: $’,’’,’’,’$Date: $’,’$Author: $’);APP_STANDARD.EVENT(’PRE– FORM’);APP_WINDOW.SET_WINDOW_POSITION(’BLOCKNAME’, ’FIRST_WINDOW’);59. To Code the Zooms into Custom.pllAns: Open the $AU_TOP/RES/PLSQL/CUSTOM.PLLCode the custom function Zoom_available this function return Boolean we check here the form name and block name and return true.And then code the event procedure here we check for event if it is ZOOM then we check for the form and the block name and using FND_FUNCTION.EXECUTE open the new form  fnd_function.execute takes 4 parametersFND_FUNCTION.EXECUTE(FUNCTION_NAME=>’  ,OPEN_FLAG=>  ,SESSION_FLAG=>  ,OTHER_PARAMS=> );60. Find WindowAns:Copy the query_find object from appsstand.fmbNew Button: When-Button-Pressed write this code :- app_find.new(‘Resultant Block’);Find button: When-button-Pressed write this code :- apps_find.new(‘Resultant Block’);                              2) Pre-Query trgger at resultant block execution style beforeif :parameter.g_query_find =’TRUE’ ThenCopy(‘:QF_block.empno’,’:emp.empno’);Source                 ,  destination                                               

App_find.query_range(‘hiredate_from’,’hiredate_to’,’emp.hiredate’ )

3) Create user defined trigger QUERY_FIND BLOCK level (override)

Page 4: PLSQL Interview Questions

App_find.query_find(Resultant window , find window , find block);

PLSQL LIMIT

declare cursor a_cur is   select program_id from airplanes; type myarray is table of a_cur%rowtype; cur_array myarray;begin  open a_cur;  loop    fetch a_cur bulk collect into cur_array limit 1000;    exit when a_cur%notfound;  end loop;  close a_cur;end;

/FOR More info Please go through the URL:  http://psoug.org/reference/array_processing.html

Posted by Manohar Babu   at 3:54 AM No comments:    

Email ThisBlogThis!Share to TwitterShare to Facebook

Labels: PL/SQL TABLE

PL/SQL EXTEND PL/SQL EXTEND

Definition:

EXTEND is one of the Oracle PL/SQL collection methods which is used with nested tables and VARRAYS to append single or multiple elements to the collection. Note that EXTEND cannot be used with associative arrays. EXTEND has three forms: 

    EXTEND, which adds a single NULL instance.    EXTEND(n) which adds multiple NULL instances. The number of instances is specified by n.    EXTEND(n,m) which appends n copies of instance m to the collection.

Note that forms one and two cannot be used for NOT NULL specified collections.

Example Usage: 

The PL/SQL block below declares a PL/SQL table collection and appends the first cell at the end of the collection.

DECLARE

       type psoug_tab is table of number;       ptab psoug_tab;

BEGIN

        ptab := psoug_tab();        ptab.extend;        ptab(1) := 100;        dbms_output.put_line('value at index(1) is '||ptab(1));        ptab.extend(5,1);

Page 5: PLSQL Interview Questions

        dbms_output.put_line('value at index(4) is '||ptab(4));

END;

value at index(1) is 100

value at index(4) is 100

PL/SQL procedure successfully completed.

Posted by Manohar Babu   at 3:52 AM No comments:    

Email ThisBlogThis!Share to TwitterShare to Facebook

Labels: PL/SQL TABLE

PL/SQL Normal Insert and Bulk Insert PL/SQL NORMAL INSERT AND BULK INSERT

create table forall_test (  id           number(10),  code         varchar2(10),  description  varchar2(50));

alter table forall_test add (  constraint forall_test_pk primary key (id));

alter table forall_test add (  constraint forall_test_uk unique (code));

set serveroutput on

declare  type t_forall_test_tab is table of forall_test%rowtype;

  l_tab    t_forall_test_tab := t_forall_test_tab();  l_start  number;  l_size   number            := 10000;begin  -- populate collection.  for i in 1 .. l_size loop    l_tab.extend;

    l_tab(l_tab.last).id          := i;    l_tab(l_tab.last).code        := to_char(i);    l_tab(l_tab.last).description := 'description: ' || to_char(i);  end loop;

--  execute immediate 'truncate table forall_test';

  -- time regular inserts.  l_start := dbms_utility.get_time;

  for i in l_tab.first .. l_tab.last loop    insert into forall_test (id, code, description)    values (l_tab(i).id, l_tab(i).code, l_tab(i).description);  end loop;  

  dbms_output.put_line('normal inserts: ' || 

Page 6: PLSQL Interview Questions

                       (dbms_utility.get_time - l_start));    execute immediate 'truncate table forall_test';

  -- time bulk inserts.   l_start := dbms_utility.get_time;

  forall i in l_tab.first .. l_tab.last    insert into forall_test values l_tab(i);

  dbms_output.put_line('bulk inserts  : ' ||                        (dbms_utility.get_time - l_start));

  commit;end;

/