Difference between getSession() and getSession(true)

I am new to servlets. I couldn't find any difference between request.getSession()
and request.getSession(true) methods. Could any one help me plese.
Thanks.

I am new to servlets. I couldn't find any difference
between request.getSession()
and request.getSession(true) methods. Could
any one help me plese.
Thanks.getSession() is a convenience method shortcut for getSession(true). There is no difference. There is a difference between getSession() and getSession(false) though...
(ie, if getSession(false) will not make a new session if one does not already exist...)

Similar Messages

  • What is the difference between avi and mov

    Hi FCP users,
    I am actually an audio guy, but I would like an answer on something.
    I work with Logic, and usually use quicktime movies when I am working to movies. But I am working with a client who is an Avid user and swears by avi files. Can someone explain to me the difference. My client explained to me that avi's are better than mov files. He claims their file sizes are bigger, so therefore there quality is better. He said there is some form of compression on quicktime movies which lessen the quality to avi, even if the mov is uncompressed apparently the quality is still less than an uncompressed avi. If this is not true, could someone give me the real big difference between the two.
    I thought is was more of a preference, like windows users prefer wav, and apple users like quicktime movies. Like with audio, there isnt a huge difference between aif and wav. Windows users prefer wav and apple users aif.
    Thanks in advance for any information.

    gazo wrote:
    The vid guy has sent me some files to work with. So I am working in Final Cut to edit some of the video, and then sending it back to him. He is working on PC with Avid. What is the best. Should I convert the avi files he has sent to me to mov files. Then pull these into FCP, and then export it out as avi for him. Or should I export out as mov, and then he converts them to avi when he pulls it into Avid on his PC? Very confusing which is the best procedure between Mac and PC.
    Thanks in advance for any help.
    This is a disaster in the making. You can avoid being part of the train wreck by either renting an Avid, going to live at his house, or telling him to get a Macintosh.
    You must find the lowest common denominator video format that will work on both of your systems. That could be conventional DV, dunno, never used Avid and never tried to edit anything on a PC. But I can tell you this with absolute certainty, it will be easier and, in the end, much less expensive for one of you to adopt the other's platform for the duration of this project. The time you waste transcoding, arguing, formatting your drives, buying secondary products, fitting round pegs into square holes, and trying to find a workable solution (that will keep changing as the project gets more complicated) will cost you much more in terms of money out of pocket and creative frustration than simply buying/renting another station.
    bogiesan

  • What is the difference between start() and run()

    Hi:
    what is the difference between start() and the run()???
    in my app, i have
    Console.debug( "starting thread to listen for clients" );
    _server = new Server( this );
    _server.start();
    _server extends Thread..
    why everytime i use server.start(); my app will terminate on it is own, even though in my servr.run() method, i have a while loop
    and if i call _server.run() explicitly in my code, that while loop will be in execution
    can someone let me know??
    thnx

    what is the difference between start() and the
    run()???start() is a method on Thread that tells it to start.
    run() is a method in the object that the thread executes.
    why everytime i use _server.start(); my app will
    terminate on it is own, Err.... I'm not convinced this is true. It'll throw an IllegalThreadStateException, if you try to restart an existing thread.
    If that's what you're saying.
    even though in my _servr.run()
    method, i have a while loopI don't see the connection. Are you saying that the while loop never terminates, and you don't see why the thread is terminating?
    and if i call _server.run() explicitly in my code,
    that while loop will be in executionIf you call server.run() explicitly, then run() will be executed in the same thread that you called it in.

  • What is the difference between exists and in

    hi all
    if i have these queries
    1- select ename from emp where ename in ( select ename from emp where empno=10)
    and
    2- select ename from emp where exists ( select ename from emp where empno=10)
    what is the difference between exists and in is that only when i use in i have to bring the field name or what.... i mean in a complex SQL queries is it will give the same answer
    Thanks

    You get two entirely different result sets that may be the same. Haah! What do I mean by that.
    SQL> select table_name from user_tables;
    TABLE_NAME
    BAR
    FOO
    2 rows selected.
    SQL> select table_name from user_tables where table_name in (select table_name from user_tables where table_name = 'FOO');
    TABLE_NAME
    FOO
    1 row selected.
    SQL> select table_name from user_tables where exists(select table_name from user_tables where table_name = 'FOO');
    TABLE_NAME
    BAR
    FOO
    2 rows selected.So, why is this? the WHERE EXISTS means 'if the next is true', much like where 1=1 being always true and 1=2 being always false. In this case, where exists could be TRUE or FALSE, depending on the subquery.
    WHERE EXISTS can be useful for something like testing if we have data, without actually having to return columns.
    So, if you want to see if an employee exists you might say
    SELECT 1 FROM DUAL WHERE EXISTS( select * from emp where empid = 10);
    If there is a row in emp for empid=10, then you get back 1 from dual;
    This is what I call an 'optimistic' lookup because the WHERE EXISTS ends as soon as there is a hit. It does not care how many - only that at least one exists. It is optimistic because it will continue processing the table lookup until either it hits or reaches the end of the table - for a non-indexed query.

  • What is the difference between SWF and F4V in the context of Streaming or progressive Download?

    Hello everybody,
    I am absolutely a beginner in working with Captivate and furthermore my technological know how is not that good.
    So, I have problems to understand if the export formats SWF and F4V are both capable to be published in the Internet as streaming video and as progressive Download? Well so, I do not really understand the difference between streaming and progessive download either?
    Furthermore I was asking myself if this issue depends on how I imported flash videos (there are these two options) in my Captivate project during the production phase?
    I would be very thankful for some helping information!
    Greetings,
    Mareike the beginner

    Welcome to our community
    I'm not certain I fully understand the differences myself, but will toss out what I believe to be true about the formats. Hopefully, if I'm incorrect in my bellief, someone with more definitive knowledge will chime in.
    It was explained to me a couple of years back and is my understanding that "streaming" only applies to a video based format such as F4V, FLV and it doesn't apply to SWF. With SWF, you may specify a preload value. So when the SWF transmits from the web server to the PC, a certain percentage has to be received before play begins. But that's not streaming. It's preloading.
    For streaming to occur, the web server establishes a communication channel between the server and the destination PC. This channel is monitored to see what speed is in use. Only enough information is then transmitted to be comfortable at that speed. If the speed improves during the connection, the server serves data at a faster rate. If the connection degrades, the information transmitted is also scaled back so as to accommodate the lower speed.
    With SWF, after it has all been downloaded, a savvy user is able to poke around in their temporary internet files and save the SWF for play later. With streaming, this isn't possible because as the stream is viewed, it evaporates from memory.
    Seriously hoping others will chime in here to confirm or deny this.
    Cheers... Rick
    Helpful and Handy Links
    Begin learning Captivate 5 moments from now! $29.95
    Captivate Wish Form/Bug Reporting Form
    Adobe Certified Captivate Training
    SorcererStone Blog
    Captivate eBooks

  • What's the difference between thunderbolt and mini displayport?

    I'm trying to connect my Macbook with a monitor and I'm thinking of what cable to get. I will have to connect using a (Thunderbolt to HDMI cable) or a (mini displayport to HDMI cable).
    I was wondering what's the difference between Thunderbolt and mini displayport
    Thanks

    @bontistic: it is not true that only the Macbook Air supports Thunderbolt. All models(!) support thunderbolt: also the Macbook Pro's and Mini's. Eg.: http://www.apple.com/nl/macbookpro/features.html#thunderbolt
    My Macbook Pro from 2011 already supported Thunderbolt...

  • Difference between exists and createIf

    Hi all,
    In Node functions we are having createIf and exists. what is the difference between createIf and exists? Where we have to use createIf and where we have to use exists?
    Thanks
    Sridhar

    Hi Sridhar
    Source Node --- Exists ---target Node ..... this says that the target node will be created if and only if the source node (may be source occurences is 0...1)through which you are mapping exists or not.. If it than target node will be created if not than it wont be created ...
    Source node -
    creatIf---target Node ...... this says that there will be some condition in source side ...if that condition is true than create the target node otherwise do not create
    Regard
    Abhi

  • 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

  • Pls tell me difference between case and decode

    Hi all
    pls tell me difference between case and decode
    regards

    Well 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 SpSite and SpWeb

    hello ,
    I had an interview and I  was Asked thsi Question :
       What is the difference between  SpSite and SpWeb  ?
        and which one in the SiteCollection ?
      thanks

    The problem lies with the difference in terms used between the SharePoint user-interface and the object model. When we are speaking to end-users, they are familiar with the term "creating SharePoint team sites". However, everytime you create a "site" from the UI, an SPWeb object was created.
    It doesn't help that the MSDN documentation uses the following type of naming conventions in their code samples:
    SPSite mySiteCollection = new SPSite("http://servername/"); 
    SPWeb mySite = mySiteCollection.AllWebs["Site_Name"]; 
    SPWeb myRootSite = mySiteCollection.RootWeb;
    For me, it would have been much clearer if they wrote something like this instead:
    SPSite mySite = new SPSite("http://servername/"); 
    SPWeb myWeb = mySite.AllWebs["Site_Name"]; 
    SPWeb myRootWeb = mySite.RootWeb;
    While the description for SPSite may be valid, a typical SharePoint application web site only has onetop-level site collection. Therefore, in this url http://servername/site1/site1a/, there are actually three SPWeb objects, and only one SPSite object.
    SPSite site1 = new SPSite("http://servername/site1/");  
    SPSite site1a = new SPSite("http://servername/site1/site1a/");
    bool sitesAreEqual = site1.Equals(site1a);  // sitesAreEqual should evaluate to true.
    SPWeb web1 = site1.OpenWeb();
    SPWeb web1a = site1a.OpenWeb();
    SPWeb rootWeb = site1.RootWeb; // or site1a.RootWeb; would return same instance.
    See the SPSite.OpenWeb() method for more examples: http://msdn2.microsoft.com/en-us/library/ms474633.aspx.
    SPSite itself is not a "collection" in the sense that comes from CollectionBase, for example. In fact, both SPSite and SPWeb inherit directly from System.Object. Therefore, to use a name such as mySiteCollection is confusing/misleading.
    The key thing to keep in mind is that as developers, we need to use the technically accurate terms when speaking with each other (even if MSDN doesn't), and reserve the marketing/UI terms when speaking with people who would never see the object model. (Note: there are examples of these kinds of terminology differences all over the place in SharePoint 2007.)
    I hope this clears things up a bit...if you find something that is not correct/accurate, please let me know! some borns good, others make good

  • Difference between validation and susbstittution with tcodes

    hi all can any body tell me about difference between validation and susbstittution with tcodes
    regars
    sravya

    Hi,
    Settting up the FI Validations
    You can use additional validation to supplement the existing SAP logic to fit you into your businness needs.
    For e.g. to allow postings from company code 0001 to business area AA only.
    GGB0 - To maintain the validations
    Validation - Enter a validation name e.g. VBUS
    Applicaion Area - SAP module e.g. FI
    Calling Point - Dependent upon the application area that is selected.
    0001 - Document Header - validate enteries at document header, e.g BKPF table
    0002 - Line Items - check line item entris within a document, e.g. BSEG table
    0003 - Complete Document - check settings for the whole documents.
    e.g. Validation step 001
    Allowed company code '0001' to post to business area AA only. 'FI00' checks that line item is from FI.
    If checks failed, the error message number 14 is displayed to stop the transaction.
    Prerequisite
    <BSEG> $BUKRS = '0001' AND
    <BKPF> $GLVOR = 'FI00'
    Check
    <BSEG> $GSBER = 'AA'
    Message
    Type E No. 14 - Business Area not allowed for company 0001
    Output fields 1 - BSEG - GSBER 2 - BSEG - BUKRS
    3 - 4
    OB28 - Define Validations for Posting
    CC CallPnt Validation Description Activtn Level
    0001 2 VBUS Business Area Validation 1
    Activtn Level - 0 - Not Active 1 - Activated 2 - Activated for all except batch input
    GGB4 - Manage the activation of all validations in the SAP system.
    Validations, Substitutions, and Rules
    Purpose
    With the validations and substitutions software, you can validate and/or substitute data at the time of entry in the FI-SL System and other SAP Systems.
    Implementation Considerations
    You do not need to change the standard system to customize your validations and substitutions. For each installation, you can define exactly which validations and substitutions are necessary to ensure the integrity of your data.
    Features
    Validation
    In the SAP System, almost all input values are validated by a program or against tables or master files. Since some types of validations cannot be standardized, you can use FI-SL's validations program to create validations for your system.
    With validations, you can check values and combinations of values as they are being entered in the SAP environment. Validation rules are stored in the Rule Manager; as data is entered, the Integration Manager validates the data against the validation rules stored in the Rule Manager. Because data is validated before it is posted, only valid information enters the FI-SL System.
    You define validation rules using Boolean logic. When you define a validation rule, the system checks the validation rule to ensure that it is syntactically correct.
    You can also define the result of breaking the validation rule. For instance, you can specify that a message is issued but the user can continue processing. You can also force the user to correct the error before processing can continue.
    For more information, see Validation or What Are Validations?. For more information on using validations, see Creating a Validation. For more information on Boolean Logic, see Introduction to Boolean Logic.
    Substitution
    Substitution rules are stored in the Rule Manager. When data is entered in the system, it is substituted by the Integration Manager. The Integration Manager calls the Rule Manager. Substitution occurs before the data is posted to the FI-SL databases.
    You define substitution rules using Boolean logic. When you define a substitution rule, the system checks the substitution rule to ensure that it is syntactically correct.
    For more information, see Substitution or What Are Substitutions?. For more information on using substitutions, see Creating a Substitution. For more information on Boolean Logic, see Introduction to Boolean Logic.
    Rules
    A rule is a Boolean expression that you can use as a condition, as a check, or in another rule. Rules enable you to refer to frequently used Boolean statements simply by specifying the rule name.
    The FI-SL Integration Manager uses Boolean logic. When you use Boolean logic and syntax, you can:
    Validate data
    Substitute data
    Select ledgers for posting
    Transfer substitution data to a rollup ledger
    Select report data
    The Rule Manager stores the Boolean rules used to analyze data. The Integration Manager calls the Rule Manager and determines whether entered data should be used. If a Boolean statement is true, an action is taken; if a statement is false, no action is taken.
    Boolean logic is used in the following FI-SL modules:
    Validation
    Substitution
    Ledger selection
    Report Writer
    Rollups
    To use Boolean Logic in one of the functions listed, you create statements that are used as formulas in the FI-SL System. For more information on using Boolean Logic, see Introduction to Boolean Logic or Boolean Logic Statements and Rules.

  • Difference between false and Boolean.FALSE ?

    Hello,
    can you please tell the difference between false and Boolean.FALSE ?

    The trap behind autoboxing is that things work just fine when at least one side of the equation is a primitive. Things turn out unexpected when all of a sudden both sides of the equation happen to be an object:
    public class Test {
         public static void main(String[] args){
              boolean bp = false;
              Boolean bo = new Boolean(false);
              Boolean bo2 = new Boolean(false);
              System.out.println("Primitive VS Boolean.FALSE: " + (bp == Boolean.FALSE));
              System.out.println("Primitive VS new object: " + (bp == bo));
              System.out.println("New object VS Boolean.FALSE: " + (bo == Boolean.FALSE));
              System.out.println("new object vs new object 2: " + (bo == bo2));
    }Result:
    Primitive VS Boolean.FALSE: true
    Primitive VS new object: true
    New object VS Boolean.FALSE: false
    new object vs new object 2: falseTry explaining that in the context of this thread without ever referring to autoboxing specifically. Remember that people find these posts through Google, if you pass out information while hiding the gritty details, it gets confusing.

  • Differences between awt and swing

    Ive written the following code, however Ive implemented the gui in awt rather then swing. Ive been told it hs too be in swing. What is the difference between swing and awt what will I need to change in my program so that its done using swing rather then the awt? Heres the code:
    // pp.java
    // Grant Brown
    // 22/02/02
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.util.*;
    import javax.swing.*;
    // =========================================================
    // Class: pp
    // This class drives the customer manager. It contains the
    // main method which gets called as soon as this application
    // begins to run.
    // =========================================================
    class pp extends Frame implements ActionListener
    // Container of customer objects
    private Vector customers = new Vector (100);
    // List of names component. (Must specify java.awt in
    // front of List to distinguish the List class in the
    // java.awt package from the List class in the java.util
    // package.)
    private java.awt.List names = new java.awt.List ();
    // Delete and update button components.
    private Button delete;
    private Button update;
    // Default constructor.
    public pp ()
    // Assign "Paper Round Manager" to title bar of frame window.
    super ("Paper Round Manager");
    // Add a listener that responds to window closing
    // events. When this event occurs (by clicking on the
    // close box in the title bar), save customers and exit.
    addWindowListener (new WindowAdapter ()
    public void windowClosing
    (WindowEvent e)
    saveCustomers ();
    System.exit (0);
    // Place an empty label in the north part of the frame
    // window. This is done to correct an AWT positioning
    // problem.
    Label l = new Label ();
    add ("North", l);
    // Place the names component in the center part of the
    // frame window.
    add ("Center", names);
    // Create a panel object to hold four buttons.
    Panel p = new Panel ();
    Button b;
    // Add an Insert button to the Panel object and register
    // the current pp object as a listener for button events.
    p.add (b = new Button ("Insert"));
    b.addActionListener (this);
    // Add a Delete button to the Panel object and register
    // the current pp object as a listener for button events.
    p.add (delete = new Button ("Delete"));
    delete.addActionListener (this);
    // The Delete button should be disabled until there is at
    // least one customer to delete.
    delete.setEnabled (false);
    // Add an Update button to the Panel object and register
    // the current pp object as a listener for button events.
    p.add (update = new Button ("Update"));
    update.addActionListener (this);
    // The Update button should be disabled until there is at
    // least one customer to update.
    update.setEnabled (false);
    // Add a Finish button to the Panel object and register
    // the current customer object as a listener for button events.
    p.add (b = new Button ("Finish"));
    b.addActionListener (this);
    // Add the panel object to the frame window container.
    add ("South", p);
    // Set the background of the frame window container to
    // lightGray
    setBackground (Color.lightGray);
    // Set the size of the frame window container to 400
    // pixels horizontally by 200 pixels vertically.
    setSize (400, 200);
    // Allow the user to resize the frame window.
    setResizable (true);
    // Load all contacts.
    loadCustomers ();
    // Make sure that the frame window is visible.
    setVisible (true);
    public void actionPerformed (ActionEvent e)
    if (e.getActionCommand ().equals ("Delete"))
    delete ();
    else
    if (e.getActionCommand ().equals ("Finish"))
    saveCustomers ();
    System.exit (0);
    else
    if (e.getActionCommand ().equals ("Insert"))
    insert ();
    else
    update ();
    public Insets getInsets ()
    // Return an Insets object that describes the number of
    // pixels to reserve as a border around the edges of the
    // frame window.
    return new Insets (10, 10, 10, 10);
    public static void main (String [] args)
    // Create a new pp object and let it do its thing.
    new pp ();
    private void delete ()
    // Obtain index of selected contact item from the names
    // component.
    int index = names.getSelectedIndex ();
    // If no item was selected, index is -1. We cannot update
    // a contact if no contact item in the names component was
    // selected - because we would have nothing to work with.
    if (index != -1)
    // Remove the contact item from the names component.
    names.remove (index);
    // Remove the Customer object from the contacts Vector
    // object.
    customers.remove (index);
    // If there are no more customers ...
    if (customers.size () == 0)
    delete.setEnabled (false);
    update.setEnabled (false);
    else
    // Make sure that the first contact item in the names
    // list is highlighted.
    names.select (0);
    private void insert ()
    // Create an Insert data entry form to enter information
    // for a new customer.
    DataEntryForm def = new DataEntryForm (this, "Insert");
    // If the bOk Boolean flag is set, this indicates the user
    // exited the form by pressing the Ok button.
    if (def.bOk)
    // Create a Contact object and assign information from
    // the form to its fields.
    Customer temp = new Customer ();
    temp.name = new String (def.name.getText ());
    temp.publication = new String (def.publication.getText ());
    temp.round = new String (def.round.getText ());
    temp.address = new String (def.address.getText ());
    temp.phone = new String (def.phone.getText ());
    // Add a new customer item to the names component.
    names.add (temp.name + ", " + temp.publication);
    // Add the Customer object to the contacts Vector
    // object.
    customers.add (temp);
    // Make sure that the Delete and Update buttons are
    // enabled.
    delete.setEnabled (true);
    update.setEnabled (true);
    // Destroy the dialouge box.
    def.dispose ();
    // Make sure that the first customer item in the names list
    // is highlighted.
    names.select (0);
    // ===========================================================
    // Load all contacts from contacts.dat into the contacts
    // Vector object. Also, make sure that the last name/first
    // name from each contact is combined into a String object and
    // inserted into the names component - as a contact item.
    // ===========================================================
    private void loadCustomers ()
    FileInputStream fis = null;
    try
    fis = new FileInputStream ("Customers.dat");
    DataInputStream dis = new DataInputStream (fis);
    int nCustomers = dis.readInt ();
    for (int i = 0; i < nCustomers; i++)
    Customer temp = new Customer ();
    temp.name = dis.readUTF ();
    temp.publication = dis.readUTF ();
    temp.round = dis.readUTF ();
    temp.address = dis.readUTF ();
    temp.phone = dis.readUTF ();
    names.add (temp.name + ", " + temp.publication);
    customers.add (temp);
    if (nCustomers > 0)
    delete.setEnabled (true);
    update.setEnabled (true);
    catch (IOException e)
    finally
    if (fis != null)
    try
    fis.close ();
    catch (IOException e) {}
    // Make sure that the first contact item in the names list
    // is highlighted.
    names.select (0);
    // ========================================================
    // Save all Customer objects from the customer Vector object
    // to customer.dat. The number of customerss are saved as an
    // int to make it easy for loadCustomers () to do its job.
    // ========================================================
    private void saveCustomers ()
    FileOutputStream fos = null;
    try
    fos = new FileOutputStream ("customers.dat");
    DataOutputStream dos = new DataOutputStream (fos);
    dos.writeInt (customers.size ());
    for (int i = 0; i < customers.size (); i++)
    Customer temp = (Customer) customers.elementAt (i);
    dos.writeUTF (temp.name);
    dos.writeUTF (temp.publication);
    dos.writeUTF (temp.round);
    dos.writeUTF (temp.address);
    dos.writeUTF (temp.phone);
    catch (IOException e)
    MsgBox mb = new MsgBox (this, "PP Error",
    e.toString ());
    mb.dispose ();
    finally
    if (fos != null)
    try
    fos.close ();
    catch (IOException e) {}
    private void update ()
    // Obtain index of selected customer item from the names
    // component.
    int index = names.getSelectedIndex ();
    // If no item was selected, index is -1. We cannot update
    // a customer if no customer item in the names component was
    // selected - because we would have nothing to work with.
    if (index != -1)
    // Obtain a reference to the customer object (from the
    // customers Vector object) that is associated with the
    // index.
    Customer temp = (Customer) customers.elementAt (index);
    // Create and display an update entry form.
    DataEntryForm def = new DataEntryForm (this, "Update",
    temp.name,
    temp.publication,
    temp.round,
    temp.address,
    temp.phone);
    // If the user pressed Ok...
    if (def.bOk)
    // Update the customer information in the customers
    // Vector object.
    temp.name = new String (def.name.getText ());
    temp.publication = new String (def.publication.getText ());
    temp.round = new String (def.round.getText ());
    temp.address = new String (def.address.getText ());
    temp.phone = new String (def.phone.getText ());
    // Make sure the screen reflects the update.
    names.replaceItem (temp.name + ", " + temp.publication,
    index);
    // Destroy the dialouge box.
    def.dispose ();
    // Make sure that the first customer item in the names
    // list is highlighted.
    names.select (0);

    Ive doen pretty much what you said burt now my program isnt working at all. The window comes up but instead of doing something when you click the button it just throws shit loads of exceptions. Heres my abridged code
    // pp.java
    // Grant Brown
    // 22/02/02
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.util.*;
    import javax.swing.*;
    // =========================================================
    // Class:PP
    // This class drives the Paper Round manager. It contains the
    // main method which gets called as soon as this application
    // begins to run.
    // =========================================================
    class pp extends JFrame implements ActionListener
    // Container of customer objects (one object per customer)
    private Vector customers = new Vector (100);
    // List of names component. (Must specify java.awt in
    // front of List to distinguish the List class in the
    // java.awt package from the List class in the java.util
    // package.)
    private java.awt.List names = new java.awt.List ();
    // Delete and update button components.
    private JButton delete;
    private JButton update;
    // Default constructor.
    public pp ()
    // Assign Contact Manager to title bar of frame window.
    super ("Paper Round Manager");
    // Add a listener that responds to window closing
    // events. When this event occurs (by clicking on the
    // close box in the title bar), save contacts and exit.
    addWindowListener (new WindowAdapter ()
    public void windowClosing
    (WindowEvent e)
    saveCustomers ();
    System.exit (0);
    // Place an empty label in the north part of the frame
    // window. This is done to correct an AWT positioning
    // problem. (One thing that you'll come to realize as
    // you work with the AWT is that there are lots of bugs.)
    JLabel l = new JLabel ();
    getContentPane().add ("North", l);
    // Place the names component in the center part of the
    // frame window.
    getContentPane().add ("Center", names);
    // Create a panel object to hold four buttons.
    JPanel p = new JPanel ();
    JButton b;
    // Add an Insert button to the Panel object and register
    // the current cm object as a listener for button events.
    p.add (b = new JButton ("Insert"));
    b.addActionListener (this);
    // Add a Delete button to the Panel object and register
    // the current cm object as a listener for button events.
    p.add (delete = new JButton ("Delete"));
    delete.addActionListener (this);
    // The Delete button should be disabled until there is at
    // least one contact to delete.
    delete.setEnabled (false);
    // Add an Update button to the Panel object and register
    // the current cm object as a listener for button events.
    p.add (update = new JButton ("Update"));
    update.addActionListener (this);
    // The Update button should be disabled until there is at
    // least one contact to update.
    update.setEnabled (false);
    // Add a Finish button to the Panel object and register
    // the current cm object as a listener for button events.
    p.add (b = new JButton ("Finish"));
    b.addActionListener (this);
    // Add the panel object to the frame window container.
    getContentPane().add ("South", p);
    // Set the background of the frame window container to
    // lightGray (to give a pleasing effect).
    setBackground (Color.lightGray);
    // Set the size of the frame window container to 400
    // pixels horizontally by 200 pixels vertically.
    setBounds (50, 100, 400, 200);
    // Do not allow the user to resize the frame window.
    loadCustomers ();
    // Load all contacts.
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    // Make sure that the frame window is visible.
    setVisible (true);
    public void actionPerformed (ActionEvent e)
    if (e.getActionCommand ().equals ("Delete"))
    delete ();
    else
    if (e.getActionCommand ().equals ("Finish"))
    saveCustomers ();
    System.exit (0);
    else
    if (e.getActionCommand ().equals ("Insert"))
    insert ();
    else
    update ();
    public Insets getInsets ()
    // Return an Insets object that describes the number of
    // pixels to reserve as a border around the edges of the
    // frame window.
    return new Insets (10, 10, 10, 10);
    public static void main (String [] args)
    // Create a new cm object and let it do its thing.
    new pp ();
    private void delete ()
    // Obtain index of selected customer item from the names
    // component.
    int index = names.getSelectedIndex ();
    // If no item was selected, index is -1. We cannot update
    // a contact if no contact item in the names component was
    // selected - because we would have nothing to work with.
    if (index != -1)
    // Remove the customer item from the names component.
    names.remove (index);
    // Remove the Customer object from the contacts Vector
    // object.
    customers.remove (index);
    // If there are no more customers ...
    if (customers.size () == 0)
    delete.setEnabled (false);
    update.setEnabled (false);
    else
    // Make sure that the first contact item in the names
    // list is highlighted.
    names.select (0);
    private void insert ()
    // Create an Insert data entry form to enter information
    // for a new contact.
    DataEntryForm def = new DataEntryForm (this, "Insert");
    // If the bOk Boolean flag is set, this indicates the user
    // exited the form by pressing the Ok button.
    if (def.bOk)
    // Create a Customer object and assign information from
    // the form to its fields.
    Customer temp = new Customer ();
    temp.name = new String (def.name.getText ());
    temp.publication = new String (def.publication.getText ());
    temp.address = new String (def.address.getText ());
    temp.round = new String (def.round.getText ());
    temp.phone = new String
              (def.phone.getText ());
    // Add a new customer item to the names component.
    names.add (temp.publication + ", " + temp.address);
    // Add the Customer object to the contacts Vector
    // object.
    customers.add (temp);
    // Make sure that the Delete and Update buttons are
    // enabled.
    delete.setEnabled (true);
    update.setEnabled (true);
    // Destroy the dialog box.
    def.dispose ();
    // Make sure that the first customer item in the names list
    // is highlighted.
    names.select (0);
    // ===========================================================
    // Load all customers from customers.dat into the customers
    // Vector object. Also, make sure that the last name/first
    // name from each contact is combined into a String object and
    // inserted into the names component - as a contact item.
    // ===========================================================
    private void loadCustomers ()
    FileInputStream fis = null;
    try
    fis = new FileInputStream ("customers.dat");
    DataInputStream dis = new DataInputStream (fis);
    int nCustomers = dis.readInt ();
    for (int i = 0; i < nCustomers; i++)
    Customer temp = new Customer ();
    temp.name = dis.readUTF ();
    temp.publication = dis.readUTF ();
    temp.address = dis.readUTF ();
    temp.round = dis.readUTF ();
    temp.phone = dis.readUTF ();
    names.add (temp.publication + ", " + temp.address);
    customers.add (temp);
    if (nCustomers > 0)
    delete.setEnabled (true);
    update.setEnabled (true);
    catch (IOException e)
    finally
    if (fis != null)
    try
    fis.close ();
    catch (IOException e) {}
    // Make sure that the first customer item in the names list
    // is highlighted.
    names.select (0);
    // ========================================================
    // Save all customer objects from the contacts Vector object
    // to customers.dat. The number of contacts are saved as an
    // int to make it easy for loadCustomers () to do its job.
    // ========================================================
    private void saveCustomers ()
    FileOutputStream fos = null;
    try
    fos = new FileOutputStream ("customers.dat");
    DataOutputStream dos = new DataOutputStream (fos);
    dos.writeInt (customers.size ());
    for (int i = 0; i < customers.size (); i++)
    Customer temp = (Customer) customers.elementAt (i);
    dos.writeUTF (temp.name);
    dos.writeUTF (temp.publication);
    dos.writeUTF (temp.address);
    dos.writeUTF (temp.round);
    dos.writeUTF (temp.phone);
    catch (IOException e)
    MsgBox mb = new MsgBox (this, "PP Error",
    e.toString ());
    mb.dispose ();
    finally
    if (fos != null)
    try
    fos.close ();
    catch (IOException e) {}
    private void update ()
    // Obtain index of selected customer item from the names
    // component.
    int index = names.getSelectedIndex ();
    // If no item was selected, index is -1. We cannot update
    // a customer if no customer item in the names component was
    // selected - because we would have nothing to work with.
    if (index != -1)
    // Obtain a reference to the Customer object (from the
    // customer Vector object) that is associated with the
    // index.
    Customer temp = (Customer) customers.elementAt (index);
    // Create and display an update entry form.
    DataEntryForm def = new DataEntryForm (this, "Update",
    temp.name,
    temp.publication,
    temp.address,
    temp.round,
    temp.phone);
    // If the user pressed Ok...
    if (def.bOk)
    // Update the customer information in the customers
    // Vector object.
    temp.name = new String (def.name.getText ());
    temp.publication = new String (def.publication.getText ());
    temp.address = new String (def.address.getText ());
    temp.round = new String (def.round.getText ());
    temp.phone = new String (def.phone.getText ());
    // Make sure the screen reflects the update.
    names.replaceItem (temp.publication + ", " + temp.address,
    index);
    // Destroy the dialog box.
    def.dispose ();
    // Make sure that the first customer item in the names
    // list is highlighted.
    names.select (0);
    // ========================================================
    // Class: Customer
    // This class describes the contents of a business customer.
    // ========================================================
    class Customer
    public String name;
    public String publication;
    public String address;
    public String round;
    public String phone;
    // ==========================================================
    // Class: DataEntryForm
    // This class provides a data entry form for entering customer
    // information.
    // ==========================================================
    class DataEntryForm extends JDialog implements ActionListener
    // bOk is a boolean flag. When true, it indicates that
    // the Ok button was pressed to terminate the dialog box
    // (as opposed to the Cancel button).
    public boolean bOk;
    // The following components hold the text that the user
    // entered into the visible text fields.
    public JTextField name;
    public JTextField publication;
    public JTextField address;
    public JTextField round;
    public JTextField phone;
    public void actionPerformed (ActionEvent e)
    // If the user pressed the Ok button, indicate this
    // by assigning true to bOk.
    if (e.getActionCommand ().equals ("Ok"))
    bOk = true;
    // Destroy the dialog box and return to the point
    // just after the creation of the DataEntryForm object.
    dispose ();
    public DataEntryForm (JFrame parent, String title)
    // Call the other constructor. The current constructor
    // is used for insert operations. The other constructor
    // is used for update operations.
    this (parent, title, "", "", "", "", "");
    public DataEntryForm (JFrame parent, String title,
    String name, String publication,
    String address, String round,
    String phone)
    // Initialize the superclass layer.
    super (parent, title, true);
    // Choose a grid bag layout so that components can be more
    // accurately positioned. (It looks nicer.)
    setLayout (new GridBagLayout ());
    // Add appropriate first name, last name, phone, fax, and
    // email components to the current DataEntryForm container.
    // (Remember, DataEntryForm is a subclass of Dialog.
    // Dialog is a container. Therefore, DataEntryForm
    // inherits the ability to be a container.)
    addComponent (this, new JLabel ("Name: "), 0, 0, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.name = new JTextField (15);
    addComponent (this, this.name, 1, 0, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.name.setText (name);
    addComponent (this, new JLabel ("Publications: "), 0, 1, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.publication = new JTextField (15);
    addComponent (this, this.publication, 1, 1, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.publication.setText (publication);
    addComponent (this, new JLabel ("Address "), 0, 2, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.address = new JTextField (15);
    addComponent (this, this.address, 1, 2, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.address.setText (address);
    addComponent (this, new JLabel ("Round No "), 0, 3, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.round = new JTextField (15);
    addComponent (this, this.round, 1, 3, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.round.setText (round);
    addComponent (this, new JLabel ("Phone Number "), 0, 4, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.phone = new JTextField (15);
    addComponent (this, this.phone, 1, 4, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.phone.setText (phone);
    addComponent (this, new JLabel (""), 0, 5, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    addComponent (this, new JLabel (""), 1, 5, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    JButton b;
    // Add an Ok button to this container.
    addComponent (this, b = new JButton ("Ok"), 0, 6, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    b.addActionListener (this);
    // Add a Cancel button to this container.
    addComponent (this, b = new JButton ("Cancel"), 1, 6, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    b.addActionListener (this);
    // Set the size of the dialog window to 250 pixels
    // horizontally by 200 pixels vertically.
    setSize (250, 200);
    // Do not allow users to resize the dialog window.
    setResizable (false);
    // Make sure that the dialog window is visible.
    setVisible (true);
    private void addComponent (Container con, Component com,
    int gridx, int gridy,
    int gridw, int gridh, int fill,
    int anchor)
    // Get the current layout manager. It is assumed to
    // be a GridBagLayout object.
    LayoutManager lm = con.getLayout ();
    // Create a GridBagConstraints object to make it
    // possible to customize component positioning.
    GridBagConstraints gbc = new GridBagConstraints ();
    // Assign the x and y grid positions.
    gbc.gridx = gridx;
    gbc.gridy = gridy;
    // Assign the number of grid blocks horizontally and
    // vertically that are occupied by the component.
    gbc.gridwidth = gridw;
    gbc.gridheight = gridh;
    // Specify the component's resize policy (fill) and
    // the direction in which the component is positioned
    // when its size is smaller than available space (anchor).
    gbc.fill = fill;
    gbc.anchor = anchor;
    // Set the new constraints that the grid bag layout
    // manager will use.
    ((GridBagLayout) lm).setConstraints (com, gbc);
    // Add the component to the container.
    con.add (com);
    // ===========================================================
    // Class: MsgBox
    // This class displays a message box to the user. The message
    // is usually an error message. The user must press the Ok
    // button to terminate the message box.
    // ===========================================================
    class MsgBox extends JDialog implements ActionListener
    public void actionPerformed (ActionEvent e)
    // Terminate the dialog box in response to the user
    // pressing the Ok button.
    dispose ();
    public MsgBox (JFrame parent, String title, String msg)
    // Initialize the superclass layer.
    super (parent, title, true);
    // Store the msg argument in a Label object and add
    // this object to the center part of the dialog window.
    JLabel l = new JLabel (msg);
    add ("Center", l);
    // Create a Button object and add it to the south part
    // of the dialog window.
    JButton b = new JButton ("Ok");
    add ("South", b);
    // Make the current object a listener to events that
    // occur as a result of the user pressing the Ok
    // button.
    b.addActionListener (this);
    // Make sure that the Ok button has the focus.
    b.requestFocus ();
    // Do not allow users to resize the dialog window.
    setResizable (false);
    // Allow the layout manager to choose an appropriate
    // size for the dialog window.
    pack ();
    // Make sure that the dialog window is visible.
    setVisible (true);
    }

  • 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

  • What is the difference between CDC and SCD type2

    I am a new user of BODS and Have used SCD type 2 (delta's) capturing and loading the difference of data to targets.
    Trying to understand the difference between CDC and scd type 2.
    CDC says capture changed data, so i assume both are same, is that true?
    thanks for the helpful info.

    CDC is Change Data Capture -
    The CDC methods will enable you to extract and load only the new or changed records form the source, rather than loading the entire records from the source. Also called as delta or incremental load.
    SCD Type 2 (Slowly Changing Dimension Type 2)
    This lets you store/preserve the history of changed records of selected dimensions as per your choice. The transaction table / source table will mostly have only the current value and is used in certain cases where in the history of a certain dimension is required for analysis purpose.
    Regards,
    Suneer

Maybe you are looking for

  • How to put record set in loop

    Using the follwing query select distinct code from oalr where code > '" & AlertCode & "' and  code<=('" & code & "') " i got 5 records eg :5603,5604,5605,5606,5607 record set fetching Ocode = CStr(rs4.Fields.Item(0).Value) Here  Ocode get only last r

  • Follow on documenets on inbound delivery

    Hi, There are two cases where the follow on documents on inbound delivery are created differently: 1) The follow on document created was "confirmation of services" 2) The follow on document created was "GR goods receipt" The question is on what confi

  • QT 6.5.2 opens these MP4 videos, but QT 7.4.5 cannot

    I have a set of videos I downloaded from the Internet in MP4 format. I expect they were extracted from a set of DVDs with HandBrake or something similar. Most of them open and play fine in QuickTime (7.4.5), but two do not; QuickTime says "The movie

  • About KALSM in purchasing orders

    Hi everyone, Two questions to ask related with KALSM. First, which is the best way of changing KALSM in a purchase order, is there any user-exit, BAPI or any other means to get this goal? Second, if I may have a purchase order with positions which ma

  • IMovie vs Final Cut

    I do not have a Mac yet. I will be buying one in the next few months. I have some home movies on VHS. I will have to get them digitized. Then I will need to upload and do a lot of editing before I burn them off onto DVD's. Will Imovie work just fine