Roll up command and CUBE command

Please anyone explain me what is the use of ROLLUP and CUBE command in SQL and which situations it will be using.

Rollup and cube, both of these will be helpfull in aggregate function along with group by.
Roll up will results in data along with their summation.
and Cube results in summation of all possible combination.
It will be help when creating reports and some analytical data.
Below is an article which give further more explanation
http://www.oracle-base.com/articles/misc/rollup-cube-grouping-functions-and-grouping-sets.php

Similar Messages

  • What is the diffrence between OMB plus command and OMB command

    what is the diffrence between OMB plus command and OMB command?
    are they both TCL command?

    Hi Alena,
    Welcome to SDN.
    Check this
    EXIT in Loops and Modularization Units
    Basic form
    EXIT.
    Effect
    Within a loop structure:
    Terminates looop processing (DO, WHILE, LOOP, SELECT).
    Within subroutines and other modularization units (but not in a loop structure):
    Leaves the subroutine or modularization unit (FORM, MODULE, FUNCTION, TOP-OF-PAGE, END-OF-PAGE).
    Outside loop structures and modularization units (report processing):
    Terminates report processing and triggers list display.
    But not sure about
    atexit() .. ,may use in Object Oriented Programming.
    (C++)
    "At exit-command in module pool."
    Mohinder
    Edited by: Mohinder Singh Chauhan on Aug 1, 2008 8:06 AM

  • How to put echo command and other command in same line in Terminal

    Hello everyone. I use GeekTool (v3.0.1) and was wondering if I could put an "echo" command and another command in a shell script such that the output would be 1 line only instead of 2 lines for the 2 commands. How do I do that?

    This is why I think iTunes, in its present form, is completely unsuited for cataloging eBooks. However you can do what you want to do with the existing tags. Since a picture is worth a thousand words, here's a screen cap for you to illustrate how:
    And the various other sorting options:
    Give all that a try and see how it works for you.

  • Confusion about VAR='command' and VAR=$(command)

    I've been trying to learn scripting, and multiple sources have told me that 'command' and $(command) are equivalent, but it doesn't work that way for me:
    me, ~ » date=$(date)
    me, ~ » $date
    bash: Mon: command not found
    me, ~ » echo "The date is $date"
    The date is Mon Mar 11 13:39:05 CDT 2013
    me, ~ » date='date'
    me, ~ » $date
    Mon Mar 11 13:39:45 CDT 2013
    me, ~ » echo "The date is $date"
    The date is date
    Can someone explain to me the difference between these two constructions?
    Last edited by the sad clown (2013-03-11 18:48:49)

    deepsoul wrote:
    Uhhh... unless my eyes deceive me, the sad clown did not use any backticks, but used single quotes by mistake.  As pointed out in nagaseiori's post scriptum, this only assigns the word "date" to the variable "date".  The shell expands $date wherever it is on the command line.  In this case, the variable is in the position of the command, so its content, "date" is executed as a command.
    If you use backticks (ASCII 0x60, not 0x27), you get the same thing as for $():
    vs@schizo, ~ > date=`date`
    vs@schizo, ~ > echo "The date is $date"
    The date is Mon Mar 11 23:44:39 CET 2013
    As others have pointed out, backticks have their drawbacks, but I use them anyway .  On a US-layout keyboard, the backtick is on the top left, the same key as the tilde, but without shift.
    Thanks for explaining that.  I was indeed mistaking single quotes ' ' for backticks ` `.

  • Having trouble in running a unix command and getting the output

    Hi,
    I am trying to run a unix command from within the java code. I am not able to make it work. I am enclosing the code and the error message that I am getting. Any help is highly appreciated.
    import java.io.*;
    public class RunCommand {
        public static void main(String args[]) {
            String s = null;
            try {
                Process p = Runtime.getRuntime().exec("cat UNIX_ASCII_TEXT_FILE | A_UNIX_PROGRAM -d");
                BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
                BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
                // read the output from the command
                System.out.println("Here is the standard output of the command:\n");
                while ((s = stdInput.readLine()) != null) {
                    System.out.println(s);
                // read any errors from the attempted command
                System.out.println("Here is the standard error of the command (if any):\n");
                while ((s = stdError.readLine()) != null) {
                    System.out.println(s);
                System.exit(0);
            catch (IOException e) {
                System.out.println("exception happened - here's what I know: ");
                e.printStackTrace();
                System.exit(-1);
    }The error message that I am getting is
    Here is the standard output of the command:
    SLu|%%$$=
    Here is the standard error of the command (if any):
    cat: cannot open |
    cat: cannot open A_UNIX_PROGRAM
    cat: cannot open -dLooks like the cat command is working and not the pipe command and the command after the pipe. But when I run the UNIX command from the command prompt I get the expected result.

    You might read this article and see if its approach works.
    http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

  • Using Xcode's C/Cpp Compilers,Make, and Debugger Commands

    Hello,
    I am trying to configure a copy of Netbeans for use on my Macbook Pro running Snow Leopard.  I installed the XCode directories today and I am trying to point Netbeans to the right C Compiler, C++ Compiler, Assembler, Make Command, and Debugger Commands that were provided with XCode.  I have pointed it to the following locations but Netbeans doesn't even understand the   #include <cstdlib>  directive.  I've included the Netbeans parameters that I have to fill in as well as the directory with the Apple llvm XCode compilers.  Thank you so much for your help.
    If someone could please tell me which of these compilers need to go where to allow Netbeans to compile C/C++ code and also help me figure out how to fill out the "Assembler", "Make Command", and "Debugger Command" I would be very grateful.
    Thanks,
    Evan

    Since Xcode puts symbolic links in the standard Unix directories, and since the tools are smart enough to call the correct variants when required, why not just use (assuming from your graphics that you want to use the LLVM frontend to the GNU toolchain):
    /usr/bin/llvm-gcc (C Compiler)
    /usr/bin/llvm-g++ (C++ Compiler)
    /usr/bin/make (Make)
    /usr/bin/gdb (Debugger)
    Or, if you didn't install the Unix development tools and just the Xcode tools, use:
    /Developer/usr/bin/llvm-gcc
    etc, etc.
    This also has the advantage that you won't break your tools every time you update Xcode.
    Finally, you do realize that you only need to provide an assembler if you are actually writing Assembly Language code that needs to be compiled (similarly to how you only need to provide a Fortran compiler if you are going to be writing and compiling Fortran...).

  • Add selection as add and intersect commands combined

    Hello, I want to add selection to a selection so it acts as the two commands combined: add command and intersect command. Where parts of a selection intersect i want to act it as the add command - it simply adds selection to a selection. Where it does not intersect, i want it to act as the intersect command - it deletes the part of the selection that doesnt intersect. Can this be scripted?

    By the way: The Script would only provide the expected result if the second Selection is one contiguous area.
    Edit: This should also handle discontinuous segments for the second Selection.
    // store selection on first run, on second run add overlapping parts of the sstored selection to the new selection;
    // 2014, use at your own risk;
    #target photoshop
    if (app.documents.length > 0) {
    activeDocument.suspendHistory("something with selections", "main()");
    ////// the stuff //////
    function main () {
    var myDocument = app.activeDocument;
    var theChannelName = "removeThisChannelLaterOn";
    if (hasSelection() == true) {
    // if channel exists;
    try {
    var theChannel = myDocument.channels.getByName(theChannelName);
    // store the selection;
    var theOtherChannel = myDocument.channels.add();
    myDocument.selection.store(theOtherChannel);
    theOtherChannel.name = theChannelName+"Too";
    // fill;
    myDocument.activeChannels = [theChannel];
    var theColor = new SolidColor();
    theColor.rgb.red = 255;
    theColor.rgb.green = 255;
    theColor.rgb.blue = 255;
    myDocument.selection.fill(theColor);
    // get path information;
    var path1 = workPathFromChannel (myDocument, theChannel);
    var path2 = workPathFromChannel (myDocument, theOtherChannel);
    // check for identical point;
    var theCheck = checkForIdenticalPoints (path1, path2);
    if (theCheck != false) {
    var thePath = createPath2012(theCheck, "removeThisPathLaterOn");
    // load;
    thePath.makeSelection(0, false, SelectionType.REPLACE);
    myDocument.selection.expand(1);
    myDocument.selection.load(theChannel, SelectionType.INTERSECT, false)
    // clean up;
    thePath.remove();
    // clean up;
    theChannel.remove();
    theOtherChannel.remove();
    // if channel does not exist;
    catch (e) {
    // store the selection;
    var theMask = myDocument.channels.add();
    myDocument.selection.store(theMask);
    theMask.name = theChannelName;
    compositeChannels ();
    showChannel (theChannelName);
    myDocument.selection.deselect();
    ////// get work path  info from channel //////
    function workPathFromChannel (myDocument, theChannel) {
    // load;
    myDocument.selection.load(theChannel, SelectionType.REPLACE);
    // use threshold to heighten non black pixels;
    myDocument.quickMaskMode = true;
    myDocument.activeLayer.threshold(1);
    myDocument.quickMaskMode = false;
    // create work path;
    // =======================================================
    var idMk = charIDToTypeID( "Mk  " );
        var desc16 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
            var ref12 = new ActionReference();
            var idPath = charIDToTypeID( "Path" );
            ref12.putClass( idPath );
        desc16.putReference( idnull, ref12 );
        var idFrom = charIDToTypeID( "From" );
            var ref13 = new ActionReference();
            var idcsel = charIDToTypeID( "csel" );
            var idfsel = charIDToTypeID( "fsel" );
            ref13.putProperty( idcsel, idfsel );
        desc16.putReference( idFrom, ref13 );
        var idTlrn = charIDToTypeID( "Tlrn" );
        var idPxl = charIDToTypeID( "#Pxl" );
        desc16.putUnitDouble( idTlrn, idPxl, 1.000000 );
    executeAction( idMk, desc16, DialogModes.NO );
    // get information;
    var theArray = collectPathInfoFromDesc2012 (myDocument, myDocument.pathItems[myDocument.pathItems.length - 1]);
    return theArray
    ////// check for selection //////
    function hasSelection(){
    var ref10 = new ActionReference();
    ref10.putEnumerated( charIDToTypeID( "Dcmn" ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) );
    var docDesc = executeActionGet(ref10);
    return docDesc.hasKey(stringIDToTypeID("selection"));
    ////// go to composite channels //////
    function compositeChannels () {
    // =======================================================
    var idslct = charIDToTypeID( "slct" );
        var desc2 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
            var ref2 = new ActionReference();
            var idChnl = charIDToTypeID( "Chnl" );
            var idChnl = charIDToTypeID( "Chnl" ); 
    switch (activeDocument.mode) {
        case DocumentMode.RGB:
            var idComposite = charIDToTypeID( "RGB " );
            break;
        case DocumentMode.CMYK:
            var idComposite = charIDToTypeID( "CMYK" );
            break;
        case DocumentMode.LAB:
            var idComposite = charIDToTypeID( "Lab " );
            break;
        case DocumentMode.GRAYSCALE:
            var idComposite = charIDToTypeID( "Blck" );
            break;
            ref2.putEnumerated( idChnl, idChnl, idComposite );
        desc2.putReference( idnull, ref2 );
    executeAction( idslct, desc2, DialogModes.NO );
    ////// chow channel of name //////
    function showChannel (theName) {
    // =======================================================
    var idShw = charIDToTypeID( "Shw " );
        var desc3 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
            var list1 = new ActionList();
                var ref3 = new ActionReference();
                var idChnl = charIDToTypeID( "Chnl" );
                ref3.putName( idChnl, theName );
            list1.putReference( ref3 );
        desc3.putList( idnull, list1 );
    executeAction( idShw, desc3, DialogModes.NO );
    ////// collect path info from actiondescriptor, smooth added //////
    function collectPathInfoFromDesc2012 (myDocument, thePath) {
    var originalRulerUnits = app.preferences.rulerUnits;
    app.preferences.rulerUnits = Units.POINTS;
    // based of functions from xbytor’s stdlib;
    var ref = new ActionReference();
    for (var l = 0; l < myDocument.pathItems.length; l++) {
      var thisPath = myDocument.pathItems[l];
      if (thisPath == thePath && thisPath.name == "Work Path") {
      ref.putProperty(cTID("Path"), cTID("WrPt"));
      if (thisPath == thePath && thisPath.name != "Work Path" && thisPath.kind != PathKind.VECTORMASK) {
      ref.putIndex(cTID("Path"), l + 1);
      if (thisPath == thePath && thisPath.kind == PathKind.VECTORMASK) {
            var idPath = charIDToTypeID( "Path" );
            var idPath = charIDToTypeID( "Path" );
            var idvectorMask = stringIDToTypeID( "vectorMask" );
            ref.putEnumerated( idPath, idPath, idvectorMask );
    var desc = app.executeActionGet(ref);
    var pname = desc.getString(cTID('PthN'));
    // create new array;
    var theArray = new Array;
    var pathComponents = desc.getObjectValue(cTID("PthC")).getList(sTID('pathComponents'));
    // for subpathitems;
    for (var m = 0; m < pathComponents.count; m++) {
      var listKey = pathComponents.getObjectValue(m).getList(sTID("subpathListKey"));
      var operation1 = pathComponents.getObjectValue(m).getEnumerationValue(sTID("shapeOperation"));
      switch (operation1) {
      case 1097098272:
      var operation = 1097098272 //cTID('Add ');
      break;
      case 1398961266:
      var operation = 1398961266 //cTID('Sbtr');
      break;
      case 1231975538:
      var operation = 1231975538 //cTID('Intr');
      break;
      default:
    // case 1102:
      var operation = sTID('xor') //ShapeOperation.SHAPEXOR;
      break;
    // for subpathitem’s count;
      for (var n = 0; n < listKey.count; n++) {
      theArray.push(new Array);
      var points = listKey.getObjectValue(n).getList(sTID('points'));
      try {var closed = listKey.getObjectValue(n).getBoolean(sTID("closedSubpath"))}
      catch (e) {var closed = false};
    // for subpathitem’s segment’s number of points;
      for (var o = 0; o < points.count; o++) {
      var anchorObj = points.getObjectValue(o).getObjectValue(sTID("anchor"));
      var anchor = [anchorObj.getUnitDoubleValue(sTID('horizontal')), anchorObj.getUnitDoubleValue(sTID('vertical'))];
      var thisPoint = [anchor];
      try {
      var left = points.getObjectValue(o).getObjectValue(cTID("Fwd "));
      var leftDirection = [left.getUnitDoubleValue(sTID('horizontal')), left.getUnitDoubleValue(sTID('vertical'))];
      thisPoint.push(leftDirection)
      catch (e) {
      thisPoint.push(anchor)
      try {
      var right = points.getObjectValue(o).getObjectValue(cTID("Bwd "));
      var rightDirection = [right.getUnitDoubleValue(sTID('horizontal')), right.getUnitDoubleValue(sTID('vertical'))];
      thisPoint.push(rightDirection)
      catch (e) {
      thisPoint.push(anchor)
      try {
      var smoothOr = points.getObjectValue(o).getBoolean(cTID("Smoo"));
      thisPoint.push(smoothOr)
      catch (e) {thisPoint.push(false)};
      theArray[theArray.length - 1].push(thisPoint);
      theArray[theArray.length - 1].push(closed);
      theArray[theArray.length - 1].push(operation);
    // by xbytor, thanks to him;
    function cTID (s) { return cTID[s] || cTID[s] = app.charIDToTypeID(s); };
    function sTID (s) { return sTID[s] || sTID[s] = app.stringIDToTypeID(s); };
    // reset;
    app.preferences.rulerUnits = originalRulerUnits;
    return theArray;
    ////// create a path from collectPathInfoFromDesc2012-array //////
    function createPath2012(theArray, thePathsName) {
    var originalRulerUnits = app.preferences.rulerUnits;
    app.preferences.rulerUnits = Units.POINTS;
    // thanks to xbytor;
    cTID = function(s) { return app.charIDToTypeID(s); };
    sTID = function(s) { return app.stringIDToTypeID(s); };
        var desc1 = new ActionDescriptor();
        var ref1 = new ActionReference();
        ref1.putProperty(cTID('Path'), cTID('WrPt'));
        desc1.putReference(sTID('null'), ref1);
        var list1 = new ActionList();
    for (var m = 0; m < theArray.length; m++) {
      var thisSubPath = theArray[m];
        var desc2 = new ActionDescriptor();
        desc2.putEnumerated(sTID('shapeOperation'), sTID('shapeOperation'), thisSubPath[thisSubPath.length - 1]);
        var list2 = new ActionList();
        var desc3 = new ActionDescriptor();
        desc3.putBoolean(cTID('Clsp'), thisSubPath[thisSubPath.length - 2]);
        var list3 = new ActionList();
    for (var n = 0; n < thisSubPath.length - 2; n++) {
      var thisPoint = thisSubPath[n];
        var desc4 = new ActionDescriptor();
        var desc5 = new ActionDescriptor();
        desc5.putUnitDouble(cTID('Hrzn'), cTID('#Rlt'), thisPoint[0][0]);
        desc5.putUnitDouble(cTID('Vrtc'), cTID('#Rlt'), thisPoint[0][1]);
        desc4.putObject(cTID('Anch'), cTID('Pnt '), desc5);
        var desc6 = new ActionDescriptor();
        desc6.putUnitDouble(cTID('Hrzn'), cTID('#Rlt'), thisPoint[1][0]);
        desc6.putUnitDouble(cTID('Vrtc'), cTID('#Rlt'), thisPoint[1][1]);
        desc4.putObject(cTID('Fwd '), cTID('Pnt '), desc6);
        var desc7 = new ActionDescriptor();
        desc7.putUnitDouble(cTID('Hrzn'), cTID('#Rlt'), thisPoint[2][0]);
        desc7.putUnitDouble(cTID('Vrtc'), cTID('#Rlt'), thisPoint[2][1]);
        desc4.putObject(cTID('Bwd '), cTID('Pnt '), desc7);
        desc4.putBoolean(cTID('Smoo'), thisPoint[3]);
        list3.putObject(cTID('Pthp'), desc4);
        desc3.putList(cTID('Pts '), list3);
        list2.putObject(cTID('Sbpl'), desc3);
        desc2.putList(cTID('SbpL'), list2);
        list1.putObject(cTID('PaCm'), desc2);
        desc1.putList(cTID('T   '), list1);
        executeAction(cTID('setd'), desc1, DialogModes.NO);
    if (hasVectorMask() == false) {
    if (thePathsName != undefined) {app.activeDocument.pathItems[app.activeDocument.pathItems.length - 1].name = thePathsName};
    var myPathItem = app.activeDocument.pathItems[app.activeDocument.pathItems.length - 1];
    else {
    if (thePathsName != undefined) {app.activeDocument.pathItems[app.activeDocument.pathItems.length - 2].name = thePathsName};
    var myPathItem = app.activeDocument.pathItems[app.activeDocument.pathItems.length - 2];
    app.preferences.rulerUnits = originalRulerUnits;
    return myPathItem
    // from »Flatten All Masks.jsx« by jeffrey tranberry;
    // Function: hasVectorMask
    // Usage: see if there is a vector layer mask
    // Input: <none> Must have an open document
    // Return: true if there is a vector mask
    function hasVectorMask() {
      var hasVectorMask = false;
      try {
      var ref = new ActionReference();
      var keyVectorMaskEnabled = app.stringIDToTypeID( 'vectorMask' );
      var keyKind = app.charIDToTypeID( 'Knd ' );
      ref.putEnumerated( app.charIDToTypeID( 'Path' ), app.charIDToTypeID( 'Ordn' ), keyVectorMaskEnabled );
      var desc = executeActionGet( ref );
      if ( desc.hasKey( keyKind ) ) {
      var kindValue = desc.getEnumerationValue( keyKind );
      if (kindValue == keyVectorMaskEnabled) {
      hasVectorMask = true;
      }catch(e) {
      hasVectorMask = false;
      return hasVectorMask;
    ////// check for identical pathpoints //////
    function checkForIdenticalPoints (array1, array2) {
    var theReturn = new Array;
    // the subpathitems;
    for (var m = 0; m < array1.length; m++) {
    var firstCheck = false;
    var thisSub = array1[m];
    var someReturn = compareSubPathWithPath (thisSub, array2);
    if (someReturn != undefined) {theReturn.push(someReturn)};
    ////// return subpathitem if ine point is idetical //////
    function compareSubPathWithPath (thisSub, array2) {
    // the other subpathitems;
    for (var n = 0; n < array2.length; n++) {
    var thisOtherSub = array2[n];
    // the points;
    for (var o = 0; o < thisSub.length - 2; o++) {
    var thisPoint = thisSub[o][0];
    // other point:
    for (var p = 0; p < thisOtherSub.length - 2; p++) {
    var otherPoint = thisOtherSub[p][0];
    // terminate if one identical pont is found;
    if (thisPoint[0] == otherPoint[0] && thisPoint[1] == otherPoint[1]) {return thisSub}
    if (theReturn.length > 0) {return theReturn}
    else {return false}

  • Imp and Exp Command

    Hi,
    Pls explain me the concept of Imp/Exp command and the parameters assocoiated with it?If u can tell me online practicals for Import/Export command?
    Regards
    sudhir

    At 8:03, you "wanna learn" about tablespaces and datafiles.
    At 8:11 you want the concept of Imp/Exp explained to you.
    At 8:10 you "wanna learn" the concept of Roll Back Segmenst [sic]
    And at 8:12 you "wanna learn" all about SQL*Loader
    Not bad for nine minutes of complete thoughtlessness, I suppose.
    If you "wanna learn" all about Oracle, download the software, install it, start playing with it, and come back with some serious questions that show a modicum of thought, effort, persistence and care. Paying some attention to the usual rules of grammar and spelling might be an idea, too.
    You'll find installations documented at http://www.dizwell.com/prod/node/695#installation, and then you can work your way through some concepts at http://www.dizwell.com/prod/node/263 and then you can start doing some basic fiddling at http://www.dizwell.com/prod/node/695#basics and once you've worked your way through that lot, you should be in a position to make sensible use of the stuff over at http://tahiti.oracle.com.
    And after you've had a good read of the official Concepts book there, then you can come back here to ask specific questions and reasonably expect to get meaningful replies.

  • Measure the communicat​ing time between LabView send out commands and response of instrument

    I send a command to a function generator(SRS DS345)using "GPIB Write" via GPIB,to change the frequency of output.And I would like to to measure the time between
    initially send out commands and actual response of instrument(frequency change).I have designed a program which contains three sequences,the 2nd one contains "GPIB Write",and the 1st and the 3rd contain "Tick count",then subtract the latter from first one.I think this is not the time that I want...
    What should I do ?
    Thanks!!

    If want a more precise and NIST-traceable method of timing a portion of your LabVIEW code. The below VI uses two counters on an E-Series or NI-TIO based device to complete this task.
    Download the attached VI and replace the for loop (EVENT TO TIME) with your VI or code.
    This example uses the maximum timebase of your device as the source for "simple event counting". Due to counter roll-over, two counters are used in order to be able to time events of short or very long duration. See VI Documentation for more information.
    Attachments:
    Time_With_Counters_(LV61).vi ‏199 KB

  • Problem with "SELECT...FOR UPDATE OF..." and "POST command" combination

    Problem with "SELECT...FOR UPDATE OF..." and "POST command" combination
    Problem in committing transactions in Multiple Forms (Oracle Forms) with POST built-in command:
    Consider that the following statements are written in WHEN-WINDOW-CLOSED trigger of a called form.
    Statements in called form (Form name: FORM_CHILD):
    go_block('display_block') ;
    do_key('execute_query') ;
    -- Data from table_b will be populated in this block, based on the value of COLUMN_1 obtained
    -- from TABLE_A.
    -- Example: If the value of COLUMN_1 is 10, then all the matching records from TABLE_B, which
    -- are inserted with value 10 in TABLE_B.COLUMN_1 will be fetched and shown here.
    if user_choice = 'YES' then
    commit ;
    else
    rollback ;
    end if ;
    Statements in calling forms:
    There are two calling forms having following statements and it is going to call the above said called form.
    CALLING FORM 1
    Statements in KEY-COMMIT trigger:
    post;
    call_form(form_child, no_activate) ;
    Statements in ON-INSERT trigger:
    select column_1
    from table_a
    for update of column_1
    where column_2 = 'X' ;
    update table_a
    set column_1 = column_1 + 1
    where column_2 = 'X' ;
    insert into table_b ...;
    insert into table_b ...; Statements in KEY-COMMIT trigger:
    post;
    call_form(form_child, no_activate) ;
    CALLING FORM 2:
    Statements in ON-INSERT trigger:
    select column_1
    from table_a
    for update of column_1
    where column_2 = 'X' ;
    update table_a
    set column_1 = column_1 + 1
    where column_2 = 'X' ;
    insert into table_b ...;
    insert into table_b ...;
    insert into table_b ...;
    Our understanding:
    Assume that both the forms are running from two different machines/instances, issuing commit at the same time. In this case, forms will start executing the statements written in ON-INSERT trigger, the moment POST command is executed. Though the commit is issued at the same time, according to oracle, only one of the request will be taken for processing first. Assume that calling form 1 is getting processed first.
    So, it fetches the value available in COLUMN_1 of TABLE_A and locks the row from further select, update, etc. as SELECT...FOR UPDATE command is used (note that NOWAIT is not given, hence the lock will be released only when COMMIT or ROLLBACK happens) and proceed executing further INSERT statements. Because of the lock provided by the SELECT...FOR UPDATE command, the statements in calling form 2 will wait for the resource.
    After executing the INSERT statements, the FORM_CHILD is called. The rows inserted in to TABLE_A will be queried and shown. The database changes will be committed when user closes the window (as COMMIT is issued in its WHEN-WINDOW-CLOSED trigger). Then the SELECT...FOR UPDATE lock will be released and calling form 2's statements will be executed.
    Actual happenings or Mis-behavior:
    Calling form 2 starts executing INSERT statements instead of waiting for SELECT...FOR UPDATE lock. Also, the value selected from TABLE_A.COLUMN_1 is same in both the calling forms, which is wrong.
    The rows inserted into TABLE_B are having similar COLUMN_1 values in calling form 2 and they are fetched and shown in the called form FORM_CHILD.
    Note that in calling form 2 also POST only is issued, but the changes posted there are accessible in calling form 1 also, which is wrong.
    Kindly suggest us as to how to fix above problem. It will be much use, if you can send us the information regarding the behavior of Oracle Forms POST built-in also.
    Our mail ID: [email protected]
    Thanks a lot in advance.

    You have several problems:
    1. On-Insert will ONLY run if you have created a new record in a base-table block. If you haven't done that, then the POST command will not cause it to run.
    2. Select for update without a "no wait" will lock records for the first form, but when the second form tries this, it will hit the ORA-00054 exception, and will NOT wait. The only way you could make it wait is to issue an UPDATE sql command, which is not such a good way to go.
    All POST does is issues SQL insert or update commands for any changes the user has made to records in a form's base-table blocks, without following with a Commit command.
    Also understand that Commit is the same as Commit_Form, and Rollback is the same as Clear_Form. You should read up on these in the Forms help topics.

  • I just downloaded and instaled firefox 4. Now, everytime I institute a command I get a po[p-up from Java script that tells me to uninstal set. I cannot go on untin I press ok and then I am good for one more command and it starts with the pop-up again.

    I'm not even sure if this is an extension or plug-in and all I can tell you is what I have already stated. I can only make one command at a time and after each one I get a pop-up from Java script that says uninstal set. I must depress ok to move on, but only for one more command and it starts over again. This also happened when I tried to instal firefox 4 a couple months ago and I deleted the program and went back to an earlier version.

    Mail troubleshooting - Yosemite
    Troubleshooting sending and receiving email messages
    Troubleshooting sending email messages
    SMTP servers keep going offline

  • What key(s) do i type to change language from english to other? i am writing s story in dual languages. i was told to click command and space bar together but it is not working.

    what key(s) do it type to change language from english to other? i am writing a story in dual languages. I was told to click command and space bar together but it is not working.

    Command Spacebar opens Spotlight as you have found out. If you want to change languages you need to say what app you are using to write the story in, I'm guessing you are using Pages or MS Word. If that's the case
    Pages: Open Inspector - Click the T tab - Click Language and change your language.
    MS Word: Tools Menu - Language - Choose your language.

  • How do you highlight multiple documents rapidly, rather than having to click on the document and on "command" one at a time?

    How do you highlight multiple documents rapidly, rather than having to click on the document and on "command" one at a time? Right now, when I'm trying to highlight documents to export, I have to click on each document individually. Is there a way to highlight one document while scrolling down the list until all desired documents are highlighted? I would like to rapidly be able to do this to save time when I am exporting or saving multiple files from my documents to an external drive, CD-Rom or cloud storage.

    Click on the first item
    Hold the Shift key
    Click on the Last Item.
    All the items in between will be selected.

  • My iphone 4S only start whit cable plug in and then show battery very low (with red line end) then try to turn on but show searching in operator name command and not connecting and no work properly and when I plug out it turn off!!! what should I do?

    My iphone 4S only start whit cable plug in and then show battery very low (with red line end) then try to turn on but show searching in operator name command and not connecting and no work properly and when I plug out it turn off!!! what should I do?

    I'm afraid you'll have to get the phone serviced, dropping the phone must have damaged additional parts inside the phone.
    But Apple will not service the phone anymore, opening the phone and replacing the battery should only be done by authorized personal, not by users.
    You'll have to look for a 3rd party repair shop and see if they can fix this, sorry.

  • What is the default key command for the COMMAND key?I seem to have changed it somehow along the way and now when I push the command key it hides all windows or shows desk top I need to correct this as soon as possible-.any ideas?

    What is the default key command for THE COMMAND (apple) key? I seem to have changed it somehow along the way and now when I push the command key (only) it hides all open windows and shows the desk top and when I push it again it shows all windows again...I need to return to default A.S.A.P. just this one key...Any ideas? Thanks in advance...

    Go to
     > System Preferences > Keyboard
    Click on the 'Keyboard' tab and hit the 'modifier keys...' button. You can see and change the defaults there.
    As I'm not sure if all the labels are the same in Lion, he's a screenshot from Snow Leopard. It should be similar enough:

Maybe you are looking for