Difference between Implicit and Explicit Commit
Hi All ,
Can some one pls let me know the difference between Implicit commit and Explicit Commit .
Thanks in Advance..
>
Kalyan wrote:
> Hi,
>
> An explicit commit happens when we execute an SQL "commit" command.
>
> Implicit commits occur without running a commit command and occur only when certain SQL (DDL) statements are executed
>
> (Ie, INSERT,UPDATE OR DELETE Statements)
> >
> Hope this is clear & Helpful Short and Simple.
>
> Thanks
> Kalyan
Highlighted bit is incorrect.
Similar Messages
-
Difference between Implicit and Explicit Cursors
Hi All,
Can you just tell me what is the difference between implicit and explicit cursor?
Thanks,
PadmaHi ,
Implicit Cursor means ,the cursors which are defined impplicitly.Here we use curosr variables as "SQL%found,sql%not found,sql%is open.."
but explicit cursors defined by us like if u create a cursor C1 then
c1%found,c1% not found ,c1%open
Thank you. -
Difference between implicit and explicit enhancement points
Hi Folks,
I had learned many documents to findout the difference between explicit and implicit enhancement point.I got the theoritical knowledge on that but losing on the practical side..
Can anybody help me out with one real time scenario where the explicit enhancement points have been implemented and the step by step procedure to implement it..
Hoping for the positive response from you..
Regards,
Rohan.Hi Rohan,
In implicit they are available at the beginning of subroutines defined in the standard reports.
Edit-> Enhancement operations->show implicit enhancement options.
This will highlight all the implicit enhancements in the report.
In Explicit enhancement we have two different types of enhancements -
Enhancement point and Enhancement section.
Enhancement point - SAP has some standard functionality defined for a report , but it may be required that you'll need to add your own code. In this case the code that you'll add will be executed along with the standard code.
Enhancement section - SAP has its standard functionality defines but it may not suit your requirement, in that case you may need to add your code and you'll need that code to be executed only. By this method the existing code is automatically commented and a copy of the same code is available to edit.
After executing the report only your code will be executed and the standard code will be bypassed.
For Practicle implementation, follow this link.
Link : [http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/bb54c452-0801-0010-0e84-a653307fc6fc]
i hope it will give you some clear picture....
Thanks.
Anurag -
H2 devide implicit and explicit created indexes by dictionary views?
For migrating amounts of data it is useful to drop and recreate indexes and referencing constaints. A implicit created index by defining a primary/unique key constraint will be dropped implicitly by dropping the before mentioned constraint. Creating such a constraint after creating an equivalent index with the constraint name will result in an other behaviour. The explicit created index will not be dropped by dropping the referencing primary/unique key constraint.
So far so good and well known. The question is: Which dictionary view columns will show me the difference between implicit and explict created indexes if I try to dynamically drop and recreate indexes and unique / primary key constraints?Oracle Version is always helpful in answering questions, but for 9i you can find the system generated by:
dba_indexes.generated = 'Y'
or
'SYS_' naming convention for system generated indexes
or
dba_constraints.constraint_name = dba_constraints.index_name
Hope this helps - JTommaney -
Difference between implicit enhancement and explicit enhancement
What is the difference between implicit enhancement and explicit enhancement .
Hi Peters,
Implicit enhancement option
Throughout the ABAP system, enhancement options are automatically available at certain pre-defined places. Some of the implicit options are:
u2022 At the end of all the programs (Includes, Reports, Function pool, Module pool, etc.), after the last statement
u2022 At the beginning and end of all FORM subroutines
u2022 At the end of all Function Modules
u2022 At the end of all visibility areas (public, protected and private) of local class
To view all the implicit options available in a source code, choose u2018Edit -> Enhancement Operations -> Show Implicit Enhancement Optionsu2019 from the editor.
Befor that you click on the spiral icon button in the application toolbar
Explicit enhancement option
The Implicit enhancement options are provided at specific source code places explicitly by SAP (Note that these enhancement definitions can also be created by partners and customers in their code).
There are two types of Explicit Enhancement options available. One which can be provided at a specific place - called Enhancement Point, and another which can be used to replace a set of statements u2013 called Enhancement Section. For this, we now have two new ABAP statements, viz.
u2022 ENHANCEMENT-POINT
u2022 ENHANCEMENT-SECTION
When the Enhancement-Section is implemented, only the implementation gets executed and the original code doesnu2019t get executed. This is a new technique, which didnu2019t exist previously in any of the old ways of enhancing, to exclude any standard SAP code from execution. Because of this, there can be only one active implementation of an Enhancement-Section. On the other hand, there can be multiple active implementations of an Enhancement-Point, in which case all the implementations will be executed with no guarantee in the order of execution.
For more information check the following link
[http://help.sap.com/saphelp_nw70/helpdata/en/94/9cdc40132a8531e10000000a1550b0/frameset.htm]
Thanks,
Surya -
Difference between automatic and non-automatic page attributes
Hi,
Can anyone tell me difference between automatic page attributes and non-automatic page attributes?
and also difference between stateful and stateless mode with examples?
Thanks
NarendraHi Mullapudi,
If you mark a page attribute as u2018automaticu2019 (auto in the system), the attribute automatically gets its values via the calling URL or
via the navigation process from other pages.
This kind of attribute only has to be declared for one page.
It is identified by its name equivalence.
If another page uses a parameter with the same name,
at runtime that parameter automatically
gets the same values as the attribute.
Non-automatic page attributes
If you flag a page attribute as non-automatic, the attribute gets its values from the class attribute.
The visibility of page attributes when parameters are transferred between BSP pages depends on whether the navigation is explicit or implicit.
Explicit navigation
For example, if navigation->goto_page(page.htm)
Implicit navigation
With implicit navigation, the page attributes are transferred automatically from OnInputProcessing to OnInitialization, both in stateful and stateless mode.
The auto page attributes are refilled by the request, both in stateful and stateless mode.
Reward if Useful...
Regards,
Anita. B -
Difference between BAPI and RFC?
Difference between BAPI and RFC?
also where to use BAPI and where to use RFC?Hi,
BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.
The following standardized BAPIs are provided:
Reading instances of SAP business objects
GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.
The BAPI GetList() is a class method.
GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method. BAPIs that can create, change or delete instances of a business object type
The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.
Create( ) and CreateFromData! ( )
The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods.
Change( )
The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method.
Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.
The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.
Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.
Add<subobject> ( ) and Remove<subobject> ( ) The BAPI Add<subobject> adds a subobject to an existing object inst! ance and the BAPI and Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods.
Regards,
Prakash -
Difference Between BAPI And RFC in ABAP
Hi,
i want to know difference between BAPI and RFC in SAP,
can we call SAP GUI screen from NON SAP System Using BAPI.
Reg,
HariharanHi Ravishankar,
The difference is not importat while you understand the concept.
I think, RFC is the protocol for calling functions from external systems in R/3.
I understand like BAPI a series of complet functions that SAP offers you for use and model a business use.
But if I need program a function that can be called for external system i would call it RFC_NAME, because is a unique function that makes a single task.
In other words, the difference i think is about work idea more than another thing.
RFC
A remote function call is a call to a function module running in a system different from the caller's. The remote function can also be called from within the same system (as a remote call).
RFC consists of two interfaces : A calling interface for ABAP Programs and a calling interface for Non-SAP programs.
The RFC Interface takes care of :-
- Converting all parameter data to the representation needed in the remote system
Calling the communication routines needed to talk to the remote system.
Handling communications errors, and notifying the caller, if desired ( using EXCEPTIONS paramater of the CALL FUNCTION).
BAPI
BAPIs are standardized programming interfaces (methods) enabling external applications to access business processes and data in the R/3 System.
BAPIs provide stable and standardized methods to achieve seamless integration between the R/3 System and external applications, legacy systems and add-ons.
BAPIs are defined in the BOR(Business object repository) as methods of SAP business object types that carry out specific business functions.
BAPIs are implemented as RFC-enabled function modules and are created in the Function Builder of the ABAP Workbench.
The most critical difference btwn BAPI and FM is that BAPI can be wrapped in Business objects whereas RFC cant.
BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.
The following standardized BAPIs are provided:
Reading instances of SAP business objects
GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.
The BAPI GetList() is a class method.
GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method. BAPIs that can create, change or delete instances of a business object type
The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.
Create( ) and CreateFromData! ( )
The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods.
Change( )
The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method.
Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.
The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.
Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.
Add<subobject> ( ) and Remove<subobject> ( ) The BAPI Add<subobject> adds a subobject to an existing object inst! ance and the BAPI and Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods.
Check these Links out
http://searchsap.techtarget.com/ateQuestionNResponse/0,289625,sid21_cid558752_tax293481,00.html
http://www.sap-img.com/abap/interview-question-on-bapi-rfc-abap-objects-tables.htm
http://www.sap-img.com/fu033.htm
http://www.sap-img.com/abap/ale-bapi.htm
Refer following SDN threads:
Diff. Between BAPI and RFC
Re: BAPI and RFC
Hope this resolves your query.
Reward all the helpful answers.
Regards -
Difference between BAPI and IDocs
hello all
what is difference between BAPI and IDocsHi,
BAPI
One of the big plusses for BAPIs is that the interface and function are not supposed to change. This is a big plus when you do upgrades or hot packs because the transaction can change (format, required inputs etc) which means you then need to update the call transaction.
Some of the BAPIs are better documented and easier to use than others. You usually need to perform the BAPI that actually does the COMMIT after you call your BAPI.
The Program coding for calling a BAPI is usually cleaner than setting up the screen flow etc for the Call Transaction.
You don't need to worry about special data circumstances interrupting the normal data flow of the screens and causing errors because of that.
BAPIs probably have better performance since they don't do the screen flow processing.
In general if the BAPI exists for the transaction you want to perform and you can figure out how to use it the BAPI is probably the best way to go.
BAPIs are a subset of the RFC-enabled function modules, especially designed as Application Programming Interface (API) to the SAP business object, or in other words: are function modules officially released by SAP to be called from external programs.
IDOC
IDocs are text encoded documents with a rigid structure that are used to exchange data between R/3 and a foreign system. Instead of calling a program in the destination system directly, the data is first packed into an IDoc and then sent to the receiving system, where it is analyzed and properly processed. Therefore an IDoc data exchange is always an
asynchronous process. The significant difference between simple RFC-calls and IDoc data exchange is the fact, that every action performed on IDocs are protocolled by R/3 and IDocs can be reprocessed if an error occurred in one of the message steps.
While IDocs have to be understood as a data exchange protocol, EDI and ALE are typical use cases for IDocs. R/3 uses IDocs for both EDI and ALE to deliver data to the receiving system. ALE is basically the scheduling mechanism that defines when and between which partners and what kind of data will be exchanged on a regular or event triggered basis. Such a set-up is called an ALE-scenario.
The philosophical difference between EDI and ALE can be pinned as follows: If we send data to an external partner, we generally speak of EDI, while ALE is a mechanism to reliable replicate data between trusting systems to store a redundant copy of the IDoc data. The difference is made clear, when we think of a purchase order that is sent as an IDoc. If we send the purchase order to a supplier then the supplier will store the purchase order as a sales order. However, if we send the purchase order via ALE to another R/3 system, then the receiving system will store the purchase order also as a purchase order.
Regards,
Bhaskar -
Exact difference between function and procedure
exact difference between function and procedure(real time diff.....not like return value, dml....) and function do some work at the same time that work also do procedure..why function
ranitB wrote:
1. Function is called Inline a query. A return value is must.
But, procedure may/may not contain a return value.Not true.
A function may be called in a query providing it meets certain limitations (no DDL, or transactional statements such as commit/rollback etc.).
A function does not have to be called from a query, it can be called from other PL/SQL code or from other external applications.
Regular functions must return a value, though pipelined functions do not...
SQL> CREATE OR REPLACE TYPE split_tbl IS TABLE OF VARCHAR2(32767);
2 /
Type created.
SQL> CREATE OR REPLACE FUNCTION split (p_list VARCHAR2, p_delim VARCHAR2:=' ') RETURN SPLIT_TBL PIPELINED IS
2 l_idx PLS_INTEGER;
3 l_list VARCHAR2(32767) := p_list;
4 l_value VARCHAR2(32767);
5 BEGIN
6 LOOP
7 l_idx := INSTR(l_list, p_delim);
8 IF l_idx > 0 THEN
9 PIPE ROW(SUBSTR(l_list, 1, l_idx-1));
10 l_list := SUBSTR(l_list, l_idx+LENGTH(p_delim));
11 ELSE
12 PIPE ROW(l_list);
13 EXIT;
14 END IF;
15 END LOOP;
16 RETURN;
17 END SPLIT;
18 /
Function created.
SQL> SELECT column_value
2 FROM TABLE(split('FRED,JIM,BOB,TED,MARK',','));
COLUMN_VALUE
FRED
JIM
BOB
TED
MARK... whilst the definition of the function shows a return type, the return statement inside the function simply returns, without a value. That's because the data is passed back through a special "pipeline", and you can write code to show that the data is available to a query as soon as it's piped, and before the function has completed (reached the return statement) if you like.
A procedure does not return a value (And no an OUT parameter is not a "returned" value, it's a writeable parameter, there's a difference)
2. There are some limitations in functions which is possbl through procedures.
Like - Oracle doesn't support DML in functions called in Select queries (using PRAGMA AUTONOMOUS_TRANSACTION will help).Not strictly true. and SQL query is considered to be DML, so a function could perform a query and then be used inside another query...
SQL> ed
Wrote file afiedt.buf
1 create or replace function f_dname(p_deptno in number) return varchar2 is
2 v_dname varchar2(10);
3 begin
4 select dname into v_dname
5 from dept
6 where deptno = p_deptno;
7 return v_dname;
8* end;
SQL> /
Function created.
SQL> ed
Wrote file afiedt.buf
1* select empno, ename, f_dname(deptno) as dname from emp
SQL> /
EMPNO ENAME DNAME
7369 SMITH RESEARCH
7499 ALLEN SALES
7521 WARD SALES
7566 JONES RESEARCH
7654 MARTIN SALES
7698 BLAKE SALES
7782 CLARK ACCOUNTING
7788 SCOTT RESEARCH
7839 KING ACCOUNTING
7844 TURNER SALES
7876 ADAMS RESEARCH
7900 JAMES SALES
7902 FORD RESEARCH
7934 MILLER ACCOUNTING
14 rows selected.It's been discussed many times on the forum... my favourite here...
{message:id=1668675}
Edited by: BluShadow on 17-Sep-2012 09:22 -
Difference Between Provide and RP-PROVIDE-FROM-LAST in ABAP-HR
what is the Difference Between Provide and RP-PROVIDE-FROM-LAST IN hR. IF I want to retrieve data in BETTWEEN BEGDA AND ENDDA. what these 2 ill return.
Both ill return the LAtest record. plz let me know what ill happen.
With Regards,
Venkata Suresh KPROVIDE is like a loop statement and it reads records between BEGDA and ENDDA. There is a lot to it, you can read doc...
RP-PROVIDE-.. _> This is like read table.
It is similar to : Sort itab descending. read itab index 1.
If you want data between BEGDA and ENDDA and you have 2 internal tables, you can use PROVIDE. Otherwise, you can use a normal LOOP statement. Provide is helpful if you want to get data from more than 1 table.
For eg: Infotype 0000 has 2 records from 1.1.2000 to 1.1.2006, and 2.1.2006 to 31.12.9999, and Infotype 0185 has 1 record from 1.1.2005 to 31.12.9999.
If you use a provide BETWEEN BEGDA and endda in this case, it will run through the loop 3 times with these dates :
1.1.2000 to 31.12.2004.
1.1.2005 to 1.1.2006
2.1.2006 to 31.12.9999
If a record is not there in one of the internal tables during the date, there is a PNNNN_VALID flag which is filled up (4.6c) and in mySAP onwards, you have explicit valid flags.
Hope it helps. Please reward points if helpful.
Regards.
Samant -
Difference between Truncate and Deete .
Hi All,
Can any one pls tell me,
what is the main difference between Truncate and Delete.
Thanks in advance ,
Sanjeev.Deletes perform normal DML,it take locks on rows, they generate redo and they require segments in the UNDO tablespace.
If a mistake is made a rollback can be issued to restore the records prior to a commit.
Truncates are DDL. A truncate moves the High Water Mark of the table back to zero so all extents bar the initial are de-allocated from the table -
Pls tell me difference between case and decode
Hi all
pls tell me difference between case and decode
regardsWell not entirely true when you consider working with
sign and decode together. Your example could be
written with decode and sign like this:
decode(sign(sal-1000),1,sal+comm,-1,sal,0)But the case expression reads more easily, I admit.Rob it was just example you considered it special case ,BTW can you do it for me by DECODE function.
SQL> SELECT sal,comm,CASE WHEN sal>1000 AND sal<1300 THEN sal+comm ELSE 0 END
2 FROM emp
3 /
SAL COMM CASEWHENSAL>1000ANDSAL<1300THENSAL+COMMELSE0END
5000 0
2850 0
2450 0
2975 0
1250 1400 2650
1600 300 0
1500 0 0
950 0
1250 500 1750
3000 0
800 0
SAL COMM CASEWHENSAL>1000ANDSAL<1300THENSAL+COMMELSE0END
3000 0
1100
1300 0
14 rows selected.Note for OP CASE can be used within PL/SQL witing ORACLE 9i or later release
but DECODE function can only be used within SQL.
Khurram -
Difference between sapscripts and BDCs
what is the difference between sapscripts and BDCs
BDC for data communication between sap to non sap(vice-versa)
where scripts is a business layout(we create)
<b>bdc help</b>
They are the only 3 methods mostly we use in BDC.
Call _Dialog is outdated. it is there in the intial stages of SAP.
BDC:
Batch Data Communication (BDC) is the process of transferring data from one SAP System to another SAP system or from a non-SAP system to SAP System.
Features :
BDC is an automatic procedure.
This method is used to transfer large amount of data that is available in electronic medium.
BDC can be used primarily when installing the SAP system and when transferring data from a legacy system (external system).
BDC uses normal transaction codes to transfer data.
Types of BDC :
CLASSICAL BATCH INPUT (Session Method)
CALL TRANSACTION
BATCH INPUT METHOD:
This method is also called as CLASSICAL METHOD.
Features:
Asynchronous processing.
Synchronous Processing in database update.
Transfer data for more than one transaction.
Batch input processing log will be generated.
During processing, no transaction is started until the previous transaction has been written to the database.
CALL TRANSACTION METHOD :
This is another method to transfer data from the legacy system.
Features:
Synchronous processing. The system performs a database commit immediately before and after the CALL TRANSACTION USING statement.
Updating the database can be either synchronous or asynchronous. The program specifies the update type.
Transfer data for a single transaction.
Transfers data for a sequence of dialog screens.
No batch input processing log is generated.
For BDC:
http://myweb.dal.ca/hchinni/sap/bdc_home.htm
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/bdc&
http://www.sap-img.com/abap/learning-bdc-programming.htm
http://www.sapdevelopment.co.uk/bdc/bdchome.htm
http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
http://help.sap.com/saphelp_47x200/helpdata/en/69/c250684ba111d189750000e8322d00/frameset.htm
http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html
Check these link:
http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
http://www.sap-img.com/abap/question-about-bdc-program.htm
http://www.itcserver.com/blog/2006/06/30/batch-input-vs-call-transaction/
http://www.planetsap.com/bdc_main_page.htm
call Transaction or session method ?
These are the Function modules used for the Session Method.
BDC_OPEN_GROUP
BDC_INSERT
BDC_CLOSE_GROUP
BDC_DELETE_SESSION to create a session
You can schedule the execution of BDC session using the program RSBDCSUB.
another one call transaction
open dataset
close dataset
reward if it helps u
vijay pawar -
Whats the difference between ALL and FIRST in Multi Inserting
SQL> Drop Table Sales;
Table dropped.
SQL> Drop Table Accounts;
Table dropped.
SQL> Drop Table Research;
Table dropped.
SQL> Create Table Sales As Select * From Emp;
Table created.
SQL> Create Table Accounts As Select * From Emp;
Table created.
SQL> Create Table Research As Select * From Emp;
Table created.
SQL> Truncate Table Sales;
Table truncated.
SQL> Truncate Table Accounts;
Table truncated.
SQL> Truncate Table Research;
Table truncated.
SQL> Select * From Sales;
no rows selected
SQL> Select * From Accounts;
no rows selected
SQL> Select * From Research;
no rows selected
SQL> Insert All
2 When Deptno=10 Then
3 Into Sales (Empno,Ename,Job,Mgr,Hiredate,Sal,Comm,DeptNo)
4 When Deptno=20 Then
5 Into Accounts (Empno,Ename,Job,Mgr,Hiredate,Sal,Comm,DeptNo)
6 When Deptno=30 Then
7 Into Research (Empno,Ename,Job,Mgr,Hiredate,Sal,Comm,DeptNo)
8 Select * From Emp
9 .
SQL> /
16 rows created.
SQL> Select * From Sales;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7782 CLARK MANAGER 7839 09-JUN-81 100 10
7839 KING PRESIDENT 17-NOV-81 100 10
7934 MILLER CLERK 7782 23-JAN-82 100 10
7999 ABCDEFGH JOB 7839 09-FEB-06 100 0 10
4 rows selected.
SQL> Select * From Accounts;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7901 SMITH CLERK 7902 17-DEC-80 100 20
7566 JONES MANAGER 7839 02-APR-81 100 20
7788 SCOTT ANALYST 7566 19-APR-87 100 20
7876 ADAMS CLERK 7788 23-MAY-87 100 20
7902 FORD ANALYST 7566 03-DEC-81 100 20
123 20
6 rows selected.
SQL> Select * From Research;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7499 ALLEN SALESMAN 7698 20-FEB-81 100 300 30
7521 WARD SALESMAN 7698 22-FEB-81 100 500 30
7654 MARTIN SALESMAN 7698 28-SEP-81 100 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 100 30
7844 TURNER SALESMAN 7698 08-SEP-81 100 0 30
7900 JAMES MANAGER 7698 03-DEC-81 100 30
6 rows selected.
SQL> Truncate Table Sales;
Table truncated.
SQL> Truncate Table Accounts;
Table truncated.
SQL> Truncate Table Research;
Table truncated.
SQL> Insert First
2 When Deptno=10 Then
3 Into Sales (Empno,Ename,Job,Mgr,Hiredate,Sal,Comm,DeptNo)
4 When Deptno=20 Then
5 Into Accounts (Empno,Ename,Job,Mgr,Hiredate,Sal,Comm,DeptNo)
6 When Deptno=30 Then
7 Into Research (Empno,Ename,Job,Mgr,Hiredate,Sal,Comm,DeptNo)
8 Select * From Emp
9 /
16 rows created.
SQL> Select * From Sales;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7782 CLARK MANAGER 7839 09-JUN-81 100 10
7839 KING PRESIDENT 17-NOV-81 100 10
7934 MILLER CLERK 7782 23-JAN-82 100 10
7999 ABCDEFGH JOB 7839 09-FEB-06 100 0 10
4 rows selected.
SQL> Select * From Accounts;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7901 SMITH CLERK 7902 17-DEC-80 100 20
7566 JONES MANAGER 7839 02-APR-81 100 20
7788 SCOTT ANALYST 7566 19-APR-87 100 20
7876 ADAMS CLERK 7788 23-MAY-87 100 20
7902 FORD ANALYST 7566 03-DEC-81 100 20
123 20
6 rows selected.
SQL> Select * From Research;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7499 ALLEN SALESMAN 7698 20-FEB-81 100 300 30
7521 WARD SALESMAN 7698 22-FEB-81 100 500 30
7654 MARTIN SALESMAN 7698 28-SEP-81 100 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 100 30
7844 TURNER SALESMAN 7698 08-SEP-81 100 0 30
7900 JAMES MANAGER 7698 03-DEC-81 100 30
6 rows selected.Both inserting insert the same records then whats the difference between ALL and FIRST clause in multi insert DML
Khurram Siddiqui
[email protected]Hello
From the docs:
ALL
If you specify ALL, then Oracle evaluates each WHEN clause regardless of the results of the evaluation of any other WHEN clause. For each WHEN clause whose condition evaluates to true, Oracle executes the corresponding INTO clause list.
FIRST
If you specify FIRST, then Oracle evaluates each WHEN clause in the order in which it appears in the statement. For the first WHEN clause that evaluates to true, Oracle executes the corresponding INTO clause and skips subsequent WHEN clauses for the given row.
ELSE clause
For a given row, if no WHEN clause evaluates to true:
* If you have specified an ELSE clause, then Oracle executes the INTO clause list associated with the ELSE clause.
* If you did not specify an else clause, then Oracle takes no action for that row.
See Also:
"Multitable Inserts: Examples"
Restrictions on Multitable Inserts
* You can perform multitable inserts only on tables, not on views or materialized views.
* You cannot perform a multitable insert into a remote table.
* You cannot specify a table collection expression when performing a multitable insert.
* In a multitable insert, all of the insert_into_clauses cannot combine to specify more than 999 target columns.
* Multitable inserts are not parallelized in a Real Application Clusters environment, or if any target table is index organized, or if any target table has a bitmap index defined on it.
* Plan stability is not supported for multitable insert statements.
* The subquery of the multitable insert statement cannot use a sequence.
So given this the following example shows the difference:
SQL> CREATE TABLE dt_test_insert_base as select rownum id from dba_objects where rownum <=20
2 /
Table created.
SQL> CREATE TABLE dt_test_insert_1 (id number)
2 /
Table created.
SQL> CREATE TABLE dt_test_insert_2 (id number)
2 /
Table created.
SQL>
SQL> INSERT ALL
2 WHEN rownum <=15 THEN
3 INTO dt_test_insert_1 (id)
4 WHEN rownum >=10 THEN
5 INTO dt_test_insert_2 (id)
6 SELECT
7 ID
8 FROM
9 dt_test_insert_base
10 /
26 rows created.
SQL>
SQL> SELECT * from dt_test_insert_1
2 /
ID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
15 rows selected.
SQL> SELECT * from dt_test_insert_2
2 /
ID
10
11
12
13
14
15
16
17
18
19
20
11 rows selected.
SQL>
SQL> TRUNCATE TABLE dt_test_insert_1
2 /
Table truncated.
SQL> TRUNCATE TABLE dt_test_insert_2
2 /
Table truncated.
SQL>
SQL> INSERT FIRST
2 WHEN rownum <=15 THEN
3 INTO dt_test_insert_1 (id)
4 WHEN rownum >=10 THEN --This condition is ignored until the value of id is > 15
5 INTO dt_test_insert_2 (id)
6 SELECT
7 ID
8 FROM
9 dt_test_insert_base
10 /
20 rows created.
SQL> SELECT * from dt_test_insert_1
2 /
ID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
15 rows selected.
SQL> SELECT * from dt_test_insert_2
2 /
ID
16
17
18
19
20HTH
David
Maybe you are looking for
-
NFS Commnication channel errors for deleting and placing
Hi All, I was trying File to file scenario. I am picking the file from App server(AL11) using NFS Adapter and the processing Mode is Delete In comm channel monitor it showing an error as Sender channel error: Error: File '/staging/INTERFACE/SAP/ca/ka
-
Timeout Creating App Server Connection in JDev 10.1.3 to OAS 10.1.3
Hi All, I'm trying to deploy an application to OAS 10.1.3 on a Solaris server from JDeveloper 10.1.3 on my laptop for the first time. There are 2 OAS's installed on the Solaris unix server so the OPMN Port is one up from the default, and I've updated
-
Photoshop plug in for HP C4180
Is there a plug-in for scanning from the HP C4180 into Photoshop. I would deeply appreciate any help in finding one. I have downloaded the HP Photosmart software but it fails to find my device.
-
Hi, I have develop a web-site in JSP I want to hide the code like all the HTML and JSP CONTENTS . Like some sort of binay format. Is there any tool available like source safe or any thing like that, I can safe my code other than giving my html, jsp c
-
Does anyone know how to sort images in Lightroom by their format shape, i.e. vertical or landscape? Hope you can help Regards John