Monday, December 22, 2014

The workflow [xxxxxx] failed because an operating system profile was not specified and the Integration Service uses operating system profiles. Please check the Integration Service log for more information.

The workflow [xxxxxx] failed because an operating system profile was not specified and the 
Integration Service uses operating system profiles.  Please check the Integration Service log for more information.

I had faced this issue,now i am going to explain wht i did to resolve this.


Edit 
Use Operating System Profiles='YES' 
:)

Thursday, December 4, 2014

Informatica Scenarios Based Question

How to Optimize Buffer Memory in Informatica

How to Optimize Buffer Memory in Informatica

1)Buffer Block Size

Buffer Block Size = Largest Row Precision * 100

2)Session Buffer Blocks

Session Buffer Blocks = (total number of sources + total number of targets) * 2

3)DTM Buffer Size

DTM Buffer Size = Session Buffer Blocks * Buffer Block Size / 0.9




Tuesday, December 2, 2014

How to get even odd records in analysis of OBIEE11g

How to get even odd records in analysis of OBIEE11g


Step 1:- First we need to create an analysis report
            add any extra column and click on Edit Formula

MOD(RCOUNT(1),2)

Click Ok and Save The report.
Then Filter in the particular column 

MOD(RCOUNT(1),2)=1
OR
MOD(RCOUNT(1),2)=2


Run the report and you will get in your wishes as even or odd





Thanks


Thursday, November 20, 2014

Wednesday, November 19, 2014

What is domain,Administration Server ,Managed Server and Node Manager

What is domain in WebLogic ?

Domain is logical grouping of resources and services and consist of Administration ServerManaged Server and cluster.  There can only be one administration Server in domain and zero to N Managed Server.

What is Administration Server ?
Administration Server is WebLogic Server instance that maintains configuration data for a domain. You can deploy your application on administration Server but it is recommended to create managed Server and deploy your application in managed server and leave Administration domain for configuration and maintenance.

—There will always be atleast one Administration Server in a domain.

What is Managed Server ?
Any WebLogic Server instance apart from Administration Server is called asManaged Servers. This is weblogic server where you deploy your application (Though you can deploy your application in Administration server as well but it is not recommended in production/UAT instance)

What is Cluster in WebLogic ?
Group of WebLogic Managed Server Instances that work together to provide high availability and scalability for applications is called cluster. WebLogic Servers with in cluster can run on same machine or different machines. These are also called as managed Server cluster.

Start WebLogic Domain
Once you have successfully created domain, next step is to  start weblogic domain and access Administration Console. (Steps here are to start basic domain – only one Administration Server,  “Start/Stop WebLogic Server - Administration and Managed Server
Startup Script$BEA_HOME/user_projects/domain//bin/startWebLogic.sh (Unix)
$BEA_HOME\user_projects\domain\\bin\startWebLogic.cmd(Windows)
I installed domain with name base_domain and my BEA_HOME is c:\bea hence to start my domain -
c:\bea\user_projects\ domains\ base_domain\ bin\ startWebLogic.cmd

Node Manager is Weblogic Server utility to startstop and restartAdministration and Managed Server Instances from remote location.
1. Node Manager Process is associated with a Machine and NOT with specific Weblogic Domain (i.e. Use one node manager for multiple domains on same machine)
2. There are two versions of Node Manager - Java-based and Script-based
Java-based node manager – runs with in JVM (Java Virtual Machine) Process and more secure than script-based node manager. Configuration for java-based node manager are stored in nodemanager.properties
Script-based node manager – is available for Linux and Unix systems only and is based on shell script.
3. There are multiple ways to access Node Manager
From Administration Console : Environments -> Machines -> Configuration -> Node Manager
JMX utilities (Java Management eXtension)
WLST commands (WebLogic Scripting Tool)

Thursday, November 13, 2014

Installation of LOOKBACK ADAPTER on windows x86 platform (64 bit)

On Windows systems, install a loopback adapter on the single DHCP host that obtains an IP address from the DHCP server. This assigns a local IP address to your computer.
After installing the adapter, add a line to the %SYSTEMROOT%\system32\drivers\etc\hosts file with the following format, immediately after the localhost line:
IP_address   hostname.domainname   hostname
Replace IP_address with the local IP address of the loopback adapter.
Installing a Windows Loopback Adapter
To install a loopback adapter on Windows 2003 or Windows XP:
  1. Open the Windows Control Panel.
Windows 2003: Select Start > Control Panel > Add Hardware.
Windows XP: Select Start > Control Panel, then double-click Add Hardware.
  1. In the "Welcome" window, click Next.
  2. In the "Is the hardware connected?" window, select Yes, I have already connected the hardware, then click Next.
  3. In the "The following hardware is already installed on your computer" window, in the list of installed hardware, select Add a new hardware device, then click Next.
  4. In the "The wizard can help you install other hardware" window, select Install the hardware that I manually select from a list, then click Next.
  5. In the "From the list of hardware types, select the type of hardware you are installing" window, select Network adapters, then click Next.
  6. In the "Select Network Adapter" window, make the following selections:
    • Manufacturer: Microsoft
    • Network Adapter: Microsoft Loopback Adapter
  7. Click Next.
  8. In the "The wizard is ready to install your hardware" window, click Next.
  9. In the "Completing the Add Hardware Wizard" window, click Finish.
  10. If you are using Windows 2003, restart your computer.
  11. Right-click My Network Places on the desktop and choose Properties. This displays the Network Connections Control Panel.
  12. Right-click the connection that was just created. This is usually named "Local Area Connection 2". Choose Properties.
  13. On the "General" tab, select Internet Protocol (TCP/IP), then click Properties.
  14. In the "Properties" dialog box, click Use the following IP address and do the following:
    1. IP Address: Enter a non-routable IP for the loopback adapter. Oracle recommends the following non-routable addresses:
b.  192.168.x.x (x is any value between 1 and 255)
c.  10.10.10.10
    1. Subnet mask: Enter 255.255.255.0.
    2. Record the values you entered, which you will need later in this procedure.
    3. Leave all other fields empty.
    4. Click OK.
  1. In the "Local Area Connection 2 Properties" dialog, click OK.
  2. Close Network Connections.
  3. Restart the computer.
Removing a Windows Loopback Adapter
To remove a loopback adapter on Windows 2003 or Windows XP:
  1. Start the System Control panel.
Windows 2003: Select Start > Control Panel > System.
Windows XP: Select Start > Control Panel, then double-click System.
  1. In the "Hardware" tab, click Device Manager.
  2. In the "Device Manager" window, expand Network adapters. You should see Microsoft Loopback Adapter.
  3. Right-click Microsoft Loopback Adapter and select Uninstall.
  4. Click OK.

INFORMATICA SCENARIOS BASED QUESTIONS

Wednesday, November 12, 2014

Materialized Views

Materialized Views

Materialized views are disk based and update periodically base upon the query definition.

Views are virtual only and run the query definition each time they are accessed.

Materialized views can only be set to refresh automatically through the database detecting changes when
the view query is considered simple by the compiler. If it's considered too complex,
it won't be able to set up what are essentially internal triggers to track changes in the source tables
to only update the changed rows in the mview table.

When you create a materialized view, you'll find that Oracle creates both the mview and as a table

with the same name, which can make things confusing.

Why Use Materialized Views?

You can use materialized views to achieve one or more of the following goals:

1.Ease Network Loads.
2.Create a Mass Deployment Environment.
3.Enable Data Subsetting.
4.Enable Disconnected Computing.



EQ-
create MATERIALIZED  view user1
refresh complete 
START WITH SYSDATE
NEXT SYSDATE + 1
as select DISPLAY_NAME,OFFICE from wc_user_info_test1;

NOTE:-This MV is start from sysdate and next triggered fire for refresh is next day(sysdate+1).

-- First time refresh that is a complete refresh

SQL> BEGIN
2 dbms_mview.REFRESH('mv_test');
3 END;
4 /

PL/SQL procedure successfully completed.

SQL> SELECT last_refresh_type, to_char(last_refresh_date, 'hh24:mi:ss')
2 FROM user_mviews
3 WHERE mview_name = 'MV_TEST';

LAST_REFRESH_TYPE TO_CHAR(LAST_REFRESH_DAT
------------------------ ------------------------
FAST_PCT 21:13:34

Read-Only Materialized Views
CREATE MATERIALIZED VIEW hr.employees AS
SELECT * FROM hr.employees@orc1.world;

Updatable Materialized Views
CREATE MATERIALIZED VIEW hr.departments FOR UPDATE AS
SELECT * FROM hr.departments@orc1.world;



Hierarchies (Level-based hierarchy) in OBIEE 11G

Tuesday, November 11, 2014

OBIEE Architecture

OBIEE  Architecture






1)A Request is made by the users through answer and send it into Presentation server.
2)Presentation server convert request into Logical SQL and send it to Oracle BI Server.
3)Oracle BI Server  Convert Logical to Physical SQL and send it to database.
4)Now result get back to you.

Thanks



Monday, November 10, 2014

OBIEE Directory Structure

OBIEE Directory Structure


difference between obiee 10g and 11g

Some important points/enhancements in OBIEE 11g when compared to OBIEE 10g are listed below
  1. OBIEE 11g uses WebLogic Server as the application server as compared to Oracle AS or OC4J in OBIEE 10g.
  2. The clustering process in much easier and automated in OBIEE 11g.
  3. We can now model lookup tables in the repository.
  4. The new UI called Unified Framework now combines Answers, Dashboards, and Delivers.
  5. A new column called the hierarchical column in introduced.
  6. BI Publishers is fully and seamlessly integrated with OBIEE 11g.
  7. New time series functions PERIOD ROLLING and AGGREGATE AT are introduced.
  8. In OBIEE 11g we can create KPIs to represent business metrics.
  9. The aggregate persistence wizard creates indexes automatically.
  10. The session variables get initialized when they are actually used in OBIEE 11g unlike OBIEE 10g where they were initialized as soon as a user logs in.
  11. OBIEE 11g now supports Ragged (Unbalanced) and Skipped Hierarchy.
  12. You can also define Parent-Child hierarchy in OBIEE 11g as well.
  13. SELECT_PHYSICAL command is supported in OBIEE 11g.
In OBIEE 11g there are some changes in the terminology as well.
  • iBots are renamed as Agents.
  • Requests are renamed as Analyses.
  • Charts are renamed as Graphs.
  • Presentation Columns are renamed as Attribute Columns.

Sunday, November 9, 2014

Managed Weblogic Server

Managed Weblogic Server

domain is the basic administration unit for WebLogic Server instances. A domain consists of one or more WebLogic Server instances (and their associated resources such as JDBC resource or JMS resource) that can be managed with a single Administration Server.
A minimal domain can contain only one WebLogic Server instance, which functions both as an Administration Server, and as a Managed server. This instance is called as Weblogic Administration Server or Weblogic Admin Sever.
As it is the only instance present in domain so this Weblogic Admin Server can also be used as Managed Weblogic Server.

WEBLOGIC ADMIN SERVER OR WEBLOGIC ADMINISTRATION SERVER:

The minimum requirement for a Weblogic Domain to exist is that it must contain one Administration Server. This Weblogic Server Instance is basically used for the Administrative purpose of complete Weblogic domain.
This Admin Server can also be used for the purpose of deployment of applications along with Administrative purpose and in that case the Admin Server is acting as Managed Weblogic Server instance.

MANAGED WEBLOGIC SERVER:

Any other server instance other than Administrative Server of a Weblogic domain is called as Managed Weblogic Server. Managed Servers host the components and associated resources that constitute the applications—for example, JSPs and EJBs.

Weblogic domain with Admin Server and one Managed Server.

Node Manager ?

Node Manager

Oracle Business Intelligence runs within Oracle WebLogic Server, and therefore Oracle WebLogic Administration Server must be started before Oracle Business Intelligence components can be started and maintained.
To start the Oracle Business Intelligence system, you start:
  • the Node Manager(It is by default windows service in Enterprise Installation of OBIEE 11G)
  • the Administration Server (It is weblogic Admin Server)
  • the Managed Servers(Comes with Enterprise Installation of OBIEE 11G)
  • and then you start the system components.(All OBIEE Components : BI Server,Presentation Server,Schedular,Java Host,Cluster Services.



Steps involved to start Weblogic node manager and OBIEE11g is as follows.
In order to start all the services your Oracle database need to be up and running.
Start Weblogic Node Manager
run the below tag in command prompt.
ORACLE_BIEE_HOME/wlserver_10.3/server/bin/startNodeManager.cmd
Steps to Manually Start Oracle BIEE 11g
Run the following commands in command prompt
1. ORACLE_BIEE_HOME/user_projects/domains/bifoundation_domain/bin/startWebLogic.cmd
2. ORACLE_BIEE_HOME/user_projects/domains/bifoundation_domain/bin/startManagedWebLogic.cmdbi_server1
3. ORACLE_BIEE_HOME/instances/instance1/bin/opmnctl startall
Steps to Manually Stop Oracle BIEE 11g
Run the following commands in command prompt
1. ORACLE_BIEE_HOME/instances/instance1/bin/opmnctl shutdown
2. ORACLE_BIEE_HOME/user_projects/domains/bifoundation_domain/bin/stopManagedWebLogic.cmdbi_server1
3.ORACLE_BIEE_HOME/user_projects/domains/bifoundation_domain/bin/stopWebLogic.cmd

Tuesday, October 28, 2014

Importing Flat Files with Newline Characters in Informatica

Importing Flat Files with Newline Characters in Informatica:-

We were given multiple comma-delimited csv files with several fields utilizing a double quote text qualifier.
Normally this would not be an issue; however inside the double quotes were newline characters. Below is an example of the issue

“C,2010-05-25 18:47:36,3:9,0,db_id:11111
U,2010-05-25 18:47:53,3:9,0,db_id:11111,date_approved,0000-00-00,
date_submitted,0000-00-00
U,2010-05-26 20:37:17,3:9,0,db_id:11111,date_submitted,0000-00-00,
approval_status,’O’,date_approved,0000-00-00?

or
U,2010-05-25 18:47:53,3:9,0,db_id:11111,date_approved,0000-00-00


-00",test

NOTE:-I found two viable solutions to this issue, one of which is impractical.
1) The first approach was to open the csv files in Notepad and manually remove
the newline characters. but this is an time consuming process or 1 or 2 small file.

2) I have a better solution for that  adding a new entry to the Custom Properties field in the session configuration.

Goto-> session confi -> Custom Properties-> and  write here attribute

‘MatchQuotesPastEndOfLine’ and set the value to ‘Yes’.

or
MatchQuotesPastEndOfLine=Yes;


‘MatchQuotesPastEndOfLine=Yes';’


Friday, October 17, 2014

Restoring repository (.rep) in Informatica 9.0

Restoring repository (.rep) in Informatica 9.0

STEP1:- Copy infa repository Oracle_BI_DW_Base.rep  from below path in D:\Middleware_Home\Oracle_BI1\biapps\dwrep\Informatica\Repository

STEP2:- Copy rep into D:\Informatica\9.0.1\server\infa_shared\Backup”

First of all, In Informatica installation directory, keep the restorable repository file (With extension .rep) in the backup location e.g.  “D:\Informatica\9.0.1\server\infa_shared\Backup”

Now, In Informatica administrator webpage, select the repository service then on right side in repository properties, click edit and change the operating mode to Exclusive.


Now, on the right hand top select the “Action” dropdown menu and select repository contents, and navigate to ‘Delete’. Delete the contents in repository.


After deleting again on the same dropdown menu under repository content select ‘Restore’.
Note: - Till the time previous data is not deleted the ‘Restore’ link will stay grayed out.




Thursday, October 9, 2014

PL/SQL Questions:-

What are the various types of queries ?
Answer: The types of queries are:
Normal Queries
Sub Queries
Co-related queries
Nested queries
Compound queries

What is a transaction ?
Answer: A transaction is a set of SQL statements between any two COMMIT and ROLLBACK statements.


What is implicit cursor and how is it used by Oracle ?
Answer: An implicit cursor is a cursor which is internally created by Oracle.It is created by Oracle for each individual SQL.


Which of the following is not a schema object : Indexes, tables, public synonyms, triggers and packages ?
Answer: Public synonyms

What is PL/SQL?
Answer: PL/SQL is Oracle's Procedural Language extension to SQL.The language includes object oriented programming techniques such as encapsulation, function overloading, information hiding (all but inheritance), and so, brings state-of-the-art programming to the Oracle database server and a variety of Oracle tools.

Is there a PL/SQL Engine in SQL*Plus?
Answer: No.Unlike Oracle Forms, SQL*Plus does not have a PL/SQL engine.Thus, all your PL/SQL are send directly to the database engine for execution.This makes it much more efficient as SQL statements are not stripped off and send to the database individually.


Is there a limit on the size of a PL/SQL block?

Answer: Currently, the maximum parsed/compiled size of a PL/SQL block is 64K and the maximum code size is 100K.You can run the following select statement to query the size of an existing package or procedure. SQL> select * from dba_object_size where name = 'procedure_name'


Can one read/write files from PL/SQL?

Answer: Included in Oracle 7.3 is a UTL_FILE package that can read and write files.The directory you intend writing to has to be in your INIT.ORA file (see UTL_FILE_DIR=...parameter).
Before Oracle 7.3 the only means of writing a file was to use DBMS_OUTPUT with the SQL*Plus SPOOL command.
DECLARE
fileHandler UTL_FILE.FILE_TYPE;
BEGIN
fileHandler := UTL_FILE.FOPEN('/home/oracle/tmp', 'myoutput','W');
UTL_FILE.PUTF(fileHandler, 'Value of func1 is %sn', func1(1));
UTL_FILE.FCLOSE(fileHandler);
END;


Can you use a DDL in a procedure ? How ?
Answer: From PL/SQL V2.1 one can use the DBMS_SQL package to execute dynamic SQL statements.
Eg: CREATE OR REPLACE PROCEDURE DYNSQL AS
cur integer;
rc integer;
BEGIN
cur := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(cur,'CREATE TABLE X (Y DATE)',

DBMS_SQL.NATIVE);
rc := DBMS_SQL.EXECUTE(cur);
DBMS_SQL.CLOSE_CURSOR(cur);
END;



What are the various types of Exceptions ?
Answer: User defined and Predefined Exceptions.


Can we define exceptions twice in same block ?
Answer: No.


What is the difference between a procedure and a function ?
Answer: Functions return a single variable by value whereas procedures do not return any variable by value.Rather they return multiple variables by passing variables by reference through their OUT parameter.


Can you have two functions with the same name in a PL/SQL block ?
Answer: Yes.


Can you have two stored functions with the same name ?
Answer: Yes.


Can you call a stored function in the constraint of a table ?
Answer: No.


What are the various types of parameter modes in a procedure ?
Answer: IN, OUT AND INOUT.


What is Over Loading and what are its restrictions ?
Answer: OverLoading means an object performing different functions depending upon the no.of parameters or the data type of the parameters passed to it.


Can functions be overloaded ?
Answer: Yes.


Can 2 functions have same name & input parameters but differ only by return datatype
Answer: No.

What are the constructs of a procedure, function or a package ?
Answer: The constructs of a procedure, function or a package are :
variables and constants
cursors
exceptions

Why Create or Replace and not Drop and recreate procedures ?
Answer: So that Grants are not dropped.


Can you pass parameters in packages ? How ?
Answer: Yes.You can pass parameters to procedures or functions in a package.


What are the parts of a database trigger ?
Answer: The parts of a trigger are:

A triggering event or statement
A trigger restriction
A trigger action

What are the various types of database triggers ?
Answer: There are 12 types of triggers, they are combination of :

Insert, Delete and Update Triggers.
Before and After Triggers.
Row and Statement Triggers.


What is the advantage of a stored procedure over a database trigger ?
Answer: We have control over the firing of a stored procedure but we have no control over the firing of a trigger.

What is the maximum no.of statements that can be specified in a trigger statement ?
Answer: One.


Can views be specified in a trigger statement ?
Answer: No


What are the values of :new and :old in Insert/Delete/Update Triggers ?
Answer: INSERT : new = new value, old = NULL
DELETE : new = NULL, old = old value
UPDATE : new = new value, old = old value



What are cascading triggers? What is the maximum no of cascading triggers at a time?
Answer: When a statement in a trigger body causes another trigger to be fired, the triggers are said to be cascading.Max = 32.


What are mutating triggers ?
Answer: A trigger giving a SELECT on the table on which the trigger is written.


What are constraining triggers ?
Answer: A trigger giving an Insert/Updat e on a table having referential integrity constraint on the triggering table.


Describe Oracle database's physical and logical structure ?
Answer:
Physical : Data files, Redo Log files, Control file.
Logical : Tables, Views, Tablespaces, etc.


Can you increase the size of a tablespace ? How ?
Answer: Yes, by adding datafiles to it.

Can you increase the size of datafiles ? How ?
Answer: No (for Oracle 7.0)
Yes (for Oracle 7.3 by using the Resize clause )


What is the use of Control files ?
Answer: Contains pointers to locations of various data files, redo log files, etc.

What is the use of Data Dictionary ?
Answer: It Used by Oracle to store information about various physical and logical Oracle structures e.g.Tables, Tablespaces, datafiles, etc


What are the advantages of clusters ?
Answer: Access time reduced for joins.


What are the disadvantages of clusters ?
Answer: The time for Insert increases.


Can Long/Long RAW be clustered ?
Answer: No.


Can null keys be entered in cluster index, normal index ?
Answer: Yes.


Can Check constraint be used for self referential integrity ? How ?
Answer: Yes.In the CHECK condition for a column of a table, we can reference some other column of the same table and thus enforce self referential integrity.


What are the min.extents allocated to a rollback extent ?
Answer: Two


What are the states of a rollback segment ? What is the difference between partly available and needs recovery ?
Answer: The various states of a rollback segment are :

ONLINE
OFFLINE
PARTLY AVAILABLE
NEEDS RECOVERY
INVALID.

What is the difference between unique key and primary key ?
Answer: Unique key can be null; Primary key cannot be null.


An insert statement followed by a create table statement followed by rollback ? Will the rows be inserted ?
Answer: No.


Can you define multiple savepoints ?
Answer: Yes.


Can you Rollback to any savepoint ?
Answer: Yes.


What is the maximum no.of columns a table can have ?
Answer: 254.


What is the significance of the & and && operators in PL SQL ?
Answer: The & operator means that the PL SQL block requires user input for a variable.The && operator means that the value of this variable should be the same as inputted by the user previously for this same variable


Can you pass a parameter to a cursor ?
Answer: Explicit cursors can take parameters, as the example below shows.A cursor parameter can appear in a query wherever a constant can appear.

CURSOR c1 (median IN NUMBER) IS
SELECT job, ename FROM emp WHERE sal > median;



What are the various types of RollBack Segments ?
Answer: The types of Rollback sagments are as follows :

Public Available to all instances
Private Available to specific instance


Can you use %RowCount as a parameter to a cursor ?
Answer: Yes

Is the query below allowed :
Select sal, ename Into x From emp Where ename = 'KING' (Where x is a record of Number(4) and Char(15))
Answer: Yes


Is the assignment given below allowed :
ABC = PQR (Where ABC and PQR are records)
Answer: Yes


Is this for loop allowed : For x in &Start..&End Loop
Answer: Yes


How many rows will the following SQL return : Select * from emp Where rownum < 10;
Answer: 9 rows


How many rows will the following SQL return : Select * from emp Where rownum = 10;
Answer: No rows


Which symbol preceeds the path to the table in the remote database ?
Answer: @


Are views automatically updated when base tables are updated ?
Answer: Yes


Can a trigger written for a view ?
Answer: No


If all the values from a cursor have been fetched and another fetch is issued, the output will be : error, last record or first record ?
Answer: Last Record


A table has the following data : [[5, Null, 10]].What will the average function return ?
Answer: 7.5


Is Sysdate a system variable or a system function?
Answer: System Function


Consider a sequence whose currval is 1 and gets incremented by 1 by using the nextval reference we get the next number 2.Suppose at this point we issue an rollback and again issue a nextval.What will the output be ?
Answer: 3


Definition of relational DataBase by Dr.Codd (IBM)?
Answer: A Relational Database is a database where all data visible to the user is organized strictly as tables of data values and where all database operations work on these tables.


What is Multi Threaded Server (MTA) ?
Answer: In a Single Threaded Architecture (or a dedicated server configuration) the database manager creates a separate process for each database user.But in MTA the database manager can assign multiple users (multiple user processes) to a single dispatcher (server process), a controlling process that queues request for work thus reducing the databases memory requirement and resources.

 What is Functional Dependency?
Answer: Given a relation R, attribute Y of R is functionally dependent on attribute X of R if and only if each X-value has associated with it precisely one -Y value in R

What is Auditing ?
Answer: The database has the ability to audit all actions that take place within it. a) Login attempts, b) Object Accesss, c) Database Action Result of Greatest(1,NULL) or Least(1,NULL) NULL


While designing in client/server what are the 2 imp.things to be considered ?
Answer: Network Overhead (traffic), Speed and Load of client server


What are the disadvantages of SQL ?
Answer: Disadvantages of SQL are :

Cannot drop a field
Cannot rename a field
Cannot manage memory
Procedural Language option not provided
Index on view or index on index not provided
View updation problem

When to create indexes ?
Answer: To be created when table is queried for less than 2% or 4% to 25% of the table rows.


How can you avoid indexes ?
Answer: To make index access path unavailable Use FULL hint to optimizer for full table scan Use INDEX or AND-EQUAL hint to optimizer to use one index or set to indexes instead of another. Use an expression in the Where Clause of the SQL.

What is the result of the following SQL : Select 1 from dual UNION Select 'A' from dual;
Answer: Error


Can database trigger written on synonym of a table and if it can be then what would be the effect if original table is accessed.
Answer: Yes, database trigger would fire.


Can you alter synonym of view or view ?
Answer: No


Can you create index on view
Answer: No.


What is the difference between a view and a synonym ?
Answer: Synonym is just a second name of table used for multiple link of database.View can be created with many tables, and with virtual columns and with conditions.But synonym can be on view.

What's the length of SQL integer ?
Answer: 32 bit length

What is the difference between foreign key and reference key ?
Answer: Foreign key is the key i.e.attribute which refers to another table primary key. Reference key is the primary key of table referred by another table.


Can dual table be deleted, dropped or altered or updated or inserted ?
Answer: Yes


If content of dual is updated to some value computation takes place or not ?
Answer: Yes


If any other table same as dual is created would it act similar to dual?
Answer: Yes


For which relational operators in where clause, index is not used ?
Answer: <> , like '%...' is NOT functions, field +constant, field||''


Assume that there are multiple databases running on one machine.How can you switch from one to another ?
Answer: Changing the ORACLE_SID


What are the advantages of Oracle ?
Answer: Portability : Oracle is ported to more platforms than any of its competitors, running on more than 100 hardware platforms and 20 networking protocols. Market Presence : Oracle is by far the largest RDBMS vendor and spends more on R & D than most of its competitors earn in total revenue.This market clout means that you are unlikely to be left in the lurch by Oracle and there are always lots of third party interfaces available. Backup and Recovery : Oracle provides industrial strength support for on-line backup and recovery and good software fault tolerence to disk failure.You can also do point-in-time recovery. Performance : Speed of a 'tuned' Oracle Database and application is quite good, even with large databases.Oracle can manage > 100GB databases. Multiple database support : Oracle has a superior ability to manage multiple databases within the same transaction using a two-phase commit protocol.


What is a forward declaration ? What is its use ?
Answer: PL/SQL requires that you declare an identifier before using it.Therefore, you must declare a subprogram before calling it.This declaration at the start of a subprogram is called forward declaration.A forward declaration consists of a subprogram specification terminated by a semicolon.

What are actual and formal parameters ?
Answer: Actual Parameters : Subprograms pass information using parameters.The variables or expressions referenced in the parameter list of a subprogram call are actual parameters.For example, the following procedure call lists two actual parameters named emp_num and amount:
Eg.raise_salary(emp_num, amount);Formal Parameters : The variables declared in a subprogram specification and referenced in the subprogram body are formal parameters.For example, the following procedure declares two formal parameters named emp_id and increase:
Eg.PROCEDURE raise_salary (emp_id INTEGER, increase REAL) IS current_salary REAL;


What are the types of Notation ?
Answer: Position, Named, Mixed and Restrictions.


What all important parameters of the init.ora are supposed to be increased if you want to increase the SGA size ?
Answer: In our case, db_block_buffers was changed from 60 to 1000 (std values are 60, 550 & 3500) shared_pool_size was changed from 3.5MB to 9MB (std values are 3.5, 5 & 9MB) open_cursors was changed from 200 to 300 (std values are 200 & 300) db_block_size was changed from 2048 (2K) to 4096 (4K) {at the time of database creation}. The initial SGA was around 4MB when the server RAM was 32MB and The new SGA was around 13MB when the server RAM was increased to 128MB.


1. What is PL/SQL ?
PL/SQL is a procedural language which has interactive SQL, as well as procedural programming language constructs like conditional branching and iteration.

2. Differentiate between % ROWTYPE and TYPE RECORD.
% ROWTYPE is used when a query returns an entire row of a table or view.
TYPE RECORD, on the other hand, is used when a query returns column of different tables or views.
Eg.  TYPE r_emp is RECORD (sno smp.smpno%type,sname smp sname %type)
e_rec smp ROWTYPE
Cursor c1 is select smpno,dept from smp;
e_rec c1 %ROWTYPE

3. Explain uses of cursor.
Cursor is a named private area in SQL from which information can be accessed. They are required to process each row individually for queries which return multiple rows.

4. Show code of a cursor for loop.
Cursor declares %ROWTYPE as loop index implicitly. It then opens a cursor, gets rows of values from the active set in fields of the record and shuts when all records are processed.
Eg.  FOR smp_rec IN C1 LOOP
totalsal=totalsal+smp_recsal;
ENDLOOP;

5. Explain the uses of database trigger.
A PL/SQL program unit associated with a particular database table is called a database trigger. It is used for :
1)Audit data modifications.
2)Log events transparently.
3)Enforce complex business rules.
4)Maintain replica tables
5)Derive column values
6)Implement Complex security authorizations

6. What are the two types of exceptions.
Error handling part of PL/SQL block is called Exception. They have two types : user_defined and predefined.

7. Show some predefined exceptions.
DUP_VAL_ON_INDEX
ZERO_DIVIDE
NO_DATA_FOUND
TOO_MANY_ROWS
CURSOR_ALREADY_OPEN
INVALID_NUMBER
INVALID_CURSOR
PROGRAM_ERROR
TIMEOUT _ON_RESOURCE
STORAGE_ERROR
LOGON_DENIED
VALUE_ERROR
etc.

8. Explain Raise_application_error.
It is a procedure of package DBMS_STANDARD that allows issuing of user_defined error messages from database trigger or stored sub-program.

9.Show how functions and procedures are called in a PL/SQL block.
Function is called as a part of an expression.
total:=calculate_sal(‘b644’)
Procedure is called  as a statement in PL/SQL.
calculate_bonus(‘b644’);

10. Explain two virtual tables available at the time of database trigger execution.
Table columns are referred as THEN.column_name and NOW.column_name.
For INSERT related triggers, NOW.column_name values are available only.
For DELETE related triggers, THEN.column_name values are available only.
For UPDATE related triggers, both Table columns are available.

11. What are the rules to be applied to NULLs whilst doing comparisons?
1) NULL is never TRUE or FALSE
2) NULL cannot be equal or unequal to other values
3) If a value in an expression is NULL, then the expression itself evaluates to NULL except for concatenation operator (||)

12. How is a process of PL/SQL compiled?
Compilation process includes syntax check, bind and p-code generation processes.
Syntax checking checks the PL/SQL codes for compilation errors. When all errors are corrected, a storage address is assigned to the variables that hold data. It is called Binding. P-code is a list of instructions for the PL/SQL engine. P-code is stored in the database for named blocks and is used the next time it is executed.

13. Differentiate between Syntax and runtime errors.
A syntax error can be easily detected by a PL/SQL compiler. For eg, incorrect spelling.
A runtime error is handled with the help of exception-handling section in an PL/SQL block. For eg, SELECT INTO statement, which does not return any rows.

14. Explain Commit, Rollback and Savepoint.
For a COMMIT statement, the following is true:
·          Other users can see the data changes made by the transaction.
·          The locks acquired by the transaction are released.
·          The work done by the transaction becomes permanent.
A ROLLBACK statement gets issued when the transaction ends, and the following is true.
·          The work done in a transition is undone as if it was never issued.
·          All locks acquired by transaction are released.
It undoes all the work done by the user in a transaction. With SAVEPOINT, only part of transaction can be undone.

15. Define Implicit and Explicit Cursors.
A cursor is implicit by default. The user cannot control or process the information in this cursor.
If a query returns multiple rows of data, the program defines an explicit cursor. This allows the application to process each row sequentially as the cursor returns it.

16. Explain mutating table error.
It occurs when a trigger tries to update a row that it is currently using. It is fixed by using views or temporary tables, so database selects one and updates the other.

17. When is a declare statement required?
DECLARE statement is used by PL/SQL anonymous blocks such as with stand alone, non-stored procedures. If it is used, it must come first in a stand alone file.

18. How many triggers can be applied to a table?
A maximum of 12 triggers can be applied to one table.

19. What is the importance of SQLCODE and SQLERRM?
SQLCODE returns the value of the number of error for the last encountered error whereas SQLERRM returns the message for the last error.

20. If a cursor is open, how can we find in a PL/SQL Block?
the %ISOPEN cursor status variable can be used.

21. Show the two PL/SQL cursor exceptions.
Cursor_Already_Open
Invaid_cursor

22. What operators deal with NULL?
NVL converts NULL to another specified value.
var:=NVL(var2,’Hi’);
IS NULL and IS NOT NULL can be used to check specifically to see whether the value of a variable is NULL or not.

23. Does SQL*Plus also have a PL/SQL Engine?
No, SQL*Plus does not have a PL/SQL Engine embedded in it. Thus, all PL/SQL code is sent directly to database engine. It is much more efficient as each statement is not individually stripped off.

24. What packages are available to PL/SQL developers?
DBMS_ series of packages, such as, DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.

25. Explain 3 basic parts of a trigger.
·          A triggering statement or event.
·          A restriction
·          An action





1.            What is PL/SQL?              


PL/SQL is a procedural language that has both interactive SQL and procedural programming language constructs such as iteration, conditional branching.

2.            What is the basic structure of PL/SQL?
PL/SQL uses block structure as its basic structure. Anonymous blocks or nested blocks can be used in PL/SQL.

3.            What are the components of a PL/SQL block?
A set of related declarations and procedural statements is called block.

4.            What are the components of a PL/SQL Block?
Declarative part, Executable part and Execption part.

5.            What are the datatypes a available in PL/SQL?
Some scalar data types such as
NUMBER, VARCHAR2, DATE, CHAR, LONG, BOOLEAN.
Some composite data types such as RECORD & TABLE.

6.            What are % TYPE and % ROWTYPE? What are the advantages of using these over datatypes?
% TYPE provides the data type of a variable or a database column to that variable.
% ROWTYPE provides the record type that represents a entire row of a table or view or columns selected in the cursor.

The advantages are: I. need not know about variable's data type
ii. If the database definition of a column in a table changes, the data type of a variable changes accordingly.

7.            What is difference between % ROWTYPE and TYPE RECORD ?
% ROWTYPE is to be used whenever query returns a entire row of a table or view.
TYPE rec RECORD is to be used whenever query returns columns of different table or views and variables.

E.g. TYPE r_emp is RECORD (eno emp.empno% type,ename emp ename %type );
e_rec emp% ROWTYPE
Cursor c1 is select empno,deptno from emp;
e_rec c1 %ROWTYPE.

8.            What is PL/SQL table?
Objects of type TABLE are called "PL/SQL tables", which are modelled as (but not the same as) database tables, PL/SQL tables use a primary PL/SQL tables can have one column and a primary key.

9.            What is a cursor? Why Cursor is required?
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.

10.          Explain the two types of Cursors?
                There are two types of cursors, Implict Cursor and Explicit Cursor.
PL/SQL uses Implict Cursors for queries.
User defined cursors are called Explicit Cursors. They can be declared and used.

11.          What are the PL/SQL Statements used in cursor processing?
                DECLARE CURSOR cursor name, OPEN cursor name, FETCH cursor name INTO <variable list> or Record types, CLOSE cursor name.

12.          What are the cursor attributes used in PL/SQL?
                 %ISOPEN - to check whether cursor is open or not
% ROWCOUNT - number of rows featched/updated/deleted.
% FOUND - to check whether cursor has fetched any row. True if rows are featched.
% NOT FOUND - to check whether cursor has featched any row. True if no rows are featched.
These attributes are proceded with SQL for Implict Cursors and with Cursor name for Explict Cursors.

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

eg. FOR emp_rec IN C1 LOOP
salary_total := salary_total +emp_rec sal;
END LOOP;

14.          What will happen after commit statement ?     


                Cursor C1 is
Select empno,
ename from emp;
Begin
open C1; loop
Fetch C1 into
eno.ename;
Exit When
C1 %notfound;-----
commit;
end loop;
end;

The cursor having query as SELECT .... FOR UPDATE gets closed after COMMIT/ROLLBACK.

The cursor having query as SELECT.... does not get closed even after COMMIT/ROLLBACK.

15.          Explain the usage of WHERE CURRENT OF clause in cursors ?
WHERE CURRENT OF clause in an UPDATE,DELETE statement refers to the latest row fetched from a cursor.

16.          What is a database trigger ? Name some usages of database trigger ?
Database trigger is stored PL/SQL program unit associated with a specific database table. Usages are Audit data modificateions, Log events transparently, Enforce complex business rules Derive column values automatically, Implement complex security authorizations. Maintain replicate tables.

17.          How many types of database triggers can be specified on a table? What are they?
                 Insert             Update             Delete

Before Row                 o.k.                  o.k.                o.k.

After Row                   o.k.                  o.k.                o.k.

Before Statement        o.k.                  o.k.                o.k.

After Statement           o.k.                  o.k.                o.k.

If FOR EACH ROW clause is specified, then the trigger for each Row affected by the statement.

If WHEN clause is specified, the trigger fires according to the retruned boolean value.

18.          Is it possible to use Transaction control Statements such a ROLLBACK or COMMIT in Database Trigger? Why?
It is not possible. As triggers are defined for each table, if you use COMMIT of ROLLBACK in a trigger, it affects logical transaction processing.

19.          What are two virtual tables available during database trigger execution?
                The table columns are referred as OLD.column_name and NEW.column_name.
For triggers related to INSERT only NEW.column_name values only available.
For triggers related to UPDATE only OLD.column_name NEW.column_name values only available.
For triggers related to DELETE only OLD.column_name values only available.

20.          What happens if a procedure that updates a column of table X is called in a database trigger of the same table?
Mutation of table occurs.

21.          Write the order of precedence for validation of a column in a table ?
I. done using Database triggers.
ii. done using Integarity Constraints.

22.          What is an Exception? What are types of Exception?
Exception is the error handling part of PL/SQL block. The types are Predefined and user_defined. Some of Predefined execptions are.

CURSOR_ALREADY_OPEN
DUP_VAL_ON_INDEX
NO_DATA_FOUND
TOO_MANY_ROWS
INVALID_CURSOR
INVALID_NUMBER
LOGON_DENIED
NOT_LOGGED_ON
PROGRAM-ERROR
STORAGE_ERROR
TIMEOUT_ON_RESOURCE
VALUE_ERROR
ZERO_DIVIDE
OTHERS.

23.          What is Pragma EXECPTION_INIT? Explain the usage?
                The PRAGMA EXECPTION_INIT tells the complier to associate an exception with an oracle error. To get an error message of a specific oracle error.

e.g. PRAGMA EXCEPTION_INIT (exception name, oracle error number)

24.          What is Raise_application_error?
                Raise_application_error is a procedure of package DBMS_STANDARD which allows to issue an user_defined error messages from stored sub-program or database trigger.

25.          What are the return values of functions SQLCODE and SQLERRM?
SQLCODE returns the latest code of the error that has occured.
SQLERRM returns the relevant error message of the SQLCODE.

26.          Where the Pre_defined_exceptions are stored?
In the standard package.
Procedures, Functions & Packages;

27.          What is a stored procedure?
A stored procedure is a sequence of statements that perform specific function.

30.          What is difference between a PROCEDURE & FUNCTION?
A FUNCTION is alway returns a value using the return statement.
A PROCEDURE may return one or more values through parameters or may not return at all.

31.          What are advantages of Stored Procedures?
Extensibility,Modularity, Reusability, Maintainability and one time compilation.

32.          What are the modes of parameters that can be passed to a procedure?
IN,OUT,IN-OUT parameters.

33.          What are the two parts of a procedure?
Procedure Specification and Procedure Body.

34.          Give the structure of the procedure?
                PROCEDURE name (parameter list.....)
is
local variable declarations

BEGIN
Executable statements.
Exception.
exception handlers

end;

35.          Give the structure of the function?
                FUNCTION name (argument list .....) Return datatype is
local variable declarations
Begin
executable statements
Exception
execution handlers
End;



36.          Explain how procedures and functions are called in a PL/SQL block ?
                Function is called as part of an expression.
sal := calculate_sal ('a822');
procedure is called as a PL/SQL statement
calculate_bonus ('A822');

37.          What is Overloading of procedures?
                The Same procedure name is repeated with parameters of different datatypes and parameters in different positions, varying number of parameters is called overloading of procedures.

e.g. DBMS_OUTPUT put_line

38.          What is a package? What are the advantages of packages?
                Package is a database object that groups logically related procedures.
The advantages of packages are Modularity, Easier Applicaton Design, and Information.
Hiding,. Reusability and Better Performance.

39.          What are two parts of package?
                The two parts of package are PACKAGE SPECIFICATION & PACKAGE BODY.
Package Specification contains declarations that are global to the packages and local to the schema.
Package Body contains actual procedures and local declaration of the procedures and cursor declarations.

40.          What is difference between a Cursor declared in a procedure and Cursor declared in a package specification?
                A cursor declared in a package specification is global and can be accessed by other procedures or procedures in a package.
A cursor declared in a procedure is local to the procedure that can not be accessed by other procedures.

41.          How packaged procedures and functions are called from the following ?
a. Stored procedure or anonymous block
b. an application program such a PRC *C, PRO* COBOL
c. SQL *PLUS
                a. PACKAGE NAME.PROCEDURE NAME (parameters);
variable := PACKAGE NAME.FUNCTION NAME (arguments);
EXEC SQL EXECUTE
b.
BEGIN
PACKAGE NAME.PROCEDURE NAME (parameters)
variable := PACKAGE NAME.FUNCTION NAME (arguments);
END;
END EXEC;
c. EXECUTE PACKAGE NAME.PROCEDURE if the procedures does not have any out/in-out parameters. A function can not be called.

42.          Name the tables where characteristics of Package, procedure and functions are stored?
User_objects, User_Source and User_error.



 BEST PYSPARK LEARNING SITES https://www.youtube.com/watch?v=s3B8HXLlLTM&list=PL2IsFZBGM_IHCl9zhRVC1EXTomkEp_1zm&index=5 https://www...