MERGE operator. Logic of work.

Dear Oracle experts,
I noticed that in some examples logical MERGER work differs from the standard against which tool you use.

We will check following example in TOAD, sqlplus and you will see that the priority of deletion in the MERGER is higher than the priority of the update.

create the t_72 table (id1 number, varchar2 (10) Text1, num1);
insert into t_72 values (1, 'ok', 105);
insert into t_72 values (2, 'nok', 106);
insert into t_72 values (3, 'nok', 107);
create table t_73 (id2 number, Text2 varchar2 (10), num2);
insert into t_73 values (1, 'nok', 110);
insert into t_73 values (2, 'ok', 111);
insert into t_73 values (4, 'w', 112);
commit;

merge into t_72
using t_73
on (id1 = id2)
when matched, then update set text1 Text2 =
Delete where text1 = "nok".
When not matched then insert values (id2, text2, num2);

Select * from t_72;

What do you see? Line with id1 has not been deleted, but was stored with id2.


Now please check this one in PL/SQL - it will work correctly.

Could not explain why I'm dealing with 2 other MERGE logic?

The correct behavior is that the deletion should be applied after the update has been applied.

In the example, id1 should be deleted because 'ok' should have been upgrade "nok".

Considering that id2 should not be deleted as "nok" should have been updated for 'ok '.

(And id3 should be left alone and inserted id4)

This is obviously a bug as it was discussed in 11.2.0.3, but having had a look in the Support of Oracle online, it is not obvious that he is one of the most exposed. However, as do a search on "bad results" and "outer join" or "fusion" has produced a good number of results...

In 11.2.0.2:

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE    11.2.0.2.0      Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

SQL> select * from t_72;

       ID1 TEXT1            NUM1
---------- ---------- ----------
         1 ok                105
         2 nok               106
         3 nok               107

SQL> @merge

3 rows merged.

SQL> select * from table(dbms_xplan.display_cursor);

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
SQL_ID  4jjmpqv9muw31, child number 0
-------------------------------------
merge into t_72 using t_73 on (id1=id2) when matched then update set
text1=text2 delete where text1='nok' when not matched then insert
values (id2,text2,num2)

Plan hash value: 50174811

------------------------------------------------------------------------------
| Id  | Operation             | Name | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------
|   0 | MERGE STATEMENT       |      |       |       |    12 (100)|          |
|   1 |  MERGE                | T_72 |       |       |            |          |
|   2 |   VIEW                |      |       |       |            |          |
|   3 |    NESTED LOOPS OUTER |      |     3 |   234 |    12   (0)| 00:00:01 |
|   4 |     TABLE ACCESS FULL | T_73 |     3 |    99 |     3   (0)| 00:00:01 |
|   5 |     VIEW              |      |     1 |    45 |     3   (0)| 00:00:01 |
|*  6 |      TABLE ACCESS FULL| T_72 |     1 |    45 |     3   (0)| 00:00:01 |
------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   6 - filter("ID1"="ID2")

SQL> select * from t_72;

       ID1 TEXT1            NUM1
---------- ---------- ----------
         1 nok               105
         3 nok               107
         4 w                 112

SQL>

Whereas a merger without deleting seems to do the right stuff:

SQL>  select * from t_72;

       ID1 TEXT1            NUM1
---------- ---------- ----------
         1 ok                105
         2 nok               106
         3 nok               107

SQL> @merge_nodel

3 rows merged.

SQL>  select * from table(dbms_xplan.display_cursor);

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
SQL_ID  4x0ry1a5yg555, child number 0
-------------------------------------
merge into t_72 using t_73 on (id1=id2) when matched then update set
text1=text2 when not matched then insert values (id2,text2,num2)

Plan hash value: 50174811

------------------------------------------------------------------------------
| Id  | Operation             | Name | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------
|   0 | MERGE STATEMENT       |      |       |       |    12 (100)|          |
|   1 |  MERGE                | T_72 |       |       |            |          |
|   2 |   VIEW                |      |       |       |            |          |
|   3 |    NESTED LOOPS OUTER |      |     3 |   234 |    12   (0)| 00:00:01 |
|   4 |     TABLE ACCESS FULL | T_73 |     3 |    99 |     3   (0)| 00:00:01 |
|   5 |     VIEW              |      |     1 |    45 |     3   (0)| 00:00:01 |
|*  6 |      TABLE ACCESS FULL| T_72 |     1 |    45 |     3   (0)| 00:00:01 |
------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   6 - filter("ID1"="ID2")

SQL> select * from t_72;

       ID1 TEXT1            NUM1
---------- ---------- ----------
         1 nok               105
         2 ok                106
         3 nok               107
         4 w                 112

SQL>

The merger, without deleting has the same execution plan, but there are a number of bugs around FUSION and that can be merged if VIEWS this plan faced with views that may be non-merged, we are in a ballpark with known problems/bugs "bad results".

But base on these correct update of the results, I would expect the delete clause to remove line 1 NOT row 2.

Which is what you see in 11.2.0.3, as others have noticed

SQL> select * from t_72;

       ID1 TEXT1            NUM1
---------- ---------- ----------
         1 ok                105
         2 nok               106
         3 nok               107

SQL> @merge

3 rows merged.

SQL> select * from table(dbms_xplan.display_cursor);

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------
SQL_ID  4jjmpqv9muw31, child number 0
-------------------------------------
merge into t_72 using t_73 on (id1=id2) when matched then update set
text1=text2 delete where text1='nok' when not matched then insert
values (id2,text2,num2)

Plan hash value: 659680654

-----------------------------------------------------------------------------
| Id  | Operation            | Name | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------
|   0 | MERGE STATEMENT      |      |       |       |     7 (100)|          |
|   1 |  MERGE               | T_72 |       |       |            |          |
|   2 |   VIEW               |      |       |       |            |          |
|*  3 |    HASH JOIN OUTER   |      |     3 |   234 |     7  (15)| 00:00:01 |
|   4 |     TABLE ACCESS FULL| T_73 |     3 |    99 |     3   (0)| 00:00:01 |
|   5 |     TABLE ACCESS FULL| T_72 |     3 |   135 |     3   (0)| 00:00:01 |
-----------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   3 - access("ID1"="ID2")

SQL> select * from t_72;

       ID1 TEXT1            NUM1
---------- ---------- ----------
         2 ok                106
         3 nok               107
         4 w                 112

SQL>

The execution plan change is perhaps significant? Perhaps.

Now please check this one in PL/SQL - it will work correctly.

I tried this in the 11.2.0.2 environment. Same behavior as SQL.
If you get a difference however, investigate all the differences in the execution plan, etc.

But, "bad results" bugs - far too many of them.

Tags: Database

Similar Questions

  • Adapter DB-merge operation is a failure in OSB

    Hi all

    We service OSB invoking a DB adapter with the merge operation. This DB adapter merges data in 3 different tables. We are not able to trace exactly what table badette creates this problem

    It works fine when there is no record in the table, but get error when the merger is supposed to update the existing data (row) in the table.

    the merger failed. Name of the descriptor: [test. XxatSaomOrderHeadersIface].

    Caused by a java.util.ConcurrentModificationException.

    ; nested exception is:

    LIAISON. JCA-11616

    DBWriteInteractionSpec run Exception failed.

    the merger failed. Name of the descriptor: [test. XxatSaomOrderHeadersIface].

    Caused by a java.util.ConcurrentModificationException.

    Check the logs for the record output full DBAdapter before this exception.  This exception is considered non reproducible, probably due to an error of modeling.

    at oracle.tip.adapter.sa.impl.JCABindingReferenceImpl.post(JCABindingReferenceImpl.java:241)

    at com.bea.wli.sb.transports.jca.binding.JCATransportOutboundOperationBindingServiceImpl.invokeOneWay(JCATransportOutboundOperationBindingServiceImpl.java:114)

    ... more than 75

    Caused by: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/SyncServiceAgreement/Siebel_Agreements/Adapters/Target/Everest_DBAdapter/OAP_AGREEMENT_ATAGREEMENT_SUB_100_ADB.wsdl [OAP_AGREEMENT_ATAGREEMENT_SUB_100_ADB_ptt::merge (XxatSaomOrderHeadersIfaceCollection)] - SISM JCA Execute of 'merge' failed due to the operation: DBWriteInteractionSpec run has no Exception.

    the merger failed. Name of the descriptor: [test. XxatSaomOrderHeadersIface].

    Caused by a java.util.ConcurrentModificationException.

    ; nested exception is:

    LIAISON. JCA-11616

    DBWriteInteractionSpec run Exception failed.

    Can someone help us what's not here?

    We have the version # 12.1.3.0.4 OSB.

    Thanks in advance

    NAIT Slimane

    Do you mean "Logger to associate"?  You can skip this step. This is done in the article so that the messages to go to a custom file. If you leave it by default, he's going to - diagnostic.log file. You can see the trace messages in the file.

    «"" "Bus Service home page, can you choose Logs-> journal Configuation?.»»»" You get something like below (mine is 12.2.1)

    At the same time, you can check with Support Oracle via SR. This being Exception Java, it can also be a bug in DBAdapter. They could provide a fix.

  • F55: SDI + 5.6 "logical TV works... HDMI + 5.6 "logic of the TV does not work

    F55 in OLED Sony HDMI, works very well. Connected to the same thing in a 5.6 "logical TV does not work. Yes, I've changed the source on the logic of HDMI TV. The same logic TV works well using SDI. I have 4 5.6 "logical TV and the issue is the same with all of them. Any ideas?

    23.98
    RGB
    S range
    1080

    It's funny you mention that, because I had the same problem with mine.

    I thought I was doing something wrong... Not that I use the HDMI to the camera, find it odd that it didn't work.

    Can connect the logic of tv on my hdmi from my computer, get a signal without problem, but out of my F55, same question you encounter.

    Ryan

  • Merge HDR will not work with three images

    Working with Lightroom CC... The merge to HDR feature works when you select two images, but when I select three that I get an error "could not merge... "Please cancel and review of your choice.  Can anyone offer a suggestion

    The device is set to shoot in RAW and jpg formats? At least you managed to reach the root cause of the problem.

  • Merger application, MYSQL DB-Viewcriteria 'Contains' operator does not work

    Hello

    I created Viewcriteria using "Contains" operator in the View object. Because of the symbol of the concatenation of the viewcriteria search form always displaying the message "no data to display.

    How can I use "contains"?

    Thanks in advance.

    Jdev version: 11.1.2.4.0

    DB: MYSQL

    Thank you

    Kalpana.

    How can I use "contains"?


    Refer

    https://tompeez.WordPress.com/2011/08/21/extending-viewcriteria-to-use-SQL-contains-4/

  • Flash Player 23.0.0.162 PPAPI on the opera will not work

    O.S.: Windows XP x 64 SP2

    Browsers: Mozilla Firefox 49.0.1 and Opera 36.0.2130.80

    I updated Adobe Flash Player NPAPI for Firefox and PPAPI for opera 23.0.0.162.

    Version of Firefox works fine, but the Opera version displays a message in all sections of Flash Player:

    "Could not load the plug-in.

    With the previous version of Adobe Flash Player all worked well to the opera.

    You can solve the problem?

    Hello

    This is a known issue, see article XP/Vista: Flash PPAPI 23.0.0.162 plugin does not work in Opera and chrome. For now, you can uninstall the Flash Player and download the previous version of Flash Player (fp_22.0.0.209_archive.zip) of page archived versions Adobe Flash Player, extract the zip file and install flashplayer22_0r0_209_winpep.exe in the 22_0_r0_209 folder.

    While installation make sure you select "Warn me to install updates" so that Flash Player is not old.

    Thank you!

  • Remove operation does not work

    Hello

    JDev 11.1.2.4

    Once more a strange ADF issue. I select a row in a table (founded iterator VO/OS), and click a button that invokes an action binding method remove which was created by selecting the iterator, then the Delete operation. When you click this button, I can see that in the newspaper:

    < DCUtil > < findSpelObject > [7016] DCUtil, returning:oracle.jbo.uicli.binding.JUApplication, for IRRISAppModuleDataControl

    ViewRowCache < ViewRowCache > < removeReference > [7017]: removeReference, id = 782 RV

    < JUCtrlHierNodeBinding > < raiseRowDeleted > [7018] liaison: noCtrl_oracle_adfinternal_view_faces_model_binding_FacesCtrlHierNodeBinding_314, DataChangeEvent REMOVE arises.

    < ADFLogger > < start > list get LOV

    < DCUtil > < findSpelObject > [7019] DCUtil, returning:oracle.jbo.uicli.binding.JUApplication, for IRRISAppModuleDataControl

    List of < ADFLogger > < addContextData > get LOV

    List of < ADFLogger > < end > get LOV

    Then I updated my iterator and my table component, but the line is not deleted. So to eliminate the fact it might be a problem of refreshment, I click on a button that COMMIT. I don't have the SQL DELETE statement.

    I tested the OV AM Tester and I can remove and commit this deletion.

    Any idea?

    Thank you

    After some tests, I discovered that the selected line has not changed during the selection of a row, I change the selection of single votes to zero, then returns to the single. Now it's working.

  • Why the operator: = is not working when it is in a string concatenated and assigned to a variable?

    I met with an error ORA-00904: "V_DEPTNO": online: 14 (My PL/SQL code is below), while playing with the cursor of reference (for the end of the apprenticeship).
    I debugged it and the problem was solved and it returns the desired output.  However, the solution of it is not sensible for me even if the output
    has been posted/successfully recovered.    Here's a clearer description of the code:


    On line 14, I have a variable called stmt and stmt value concatenated with the string "where deptno =: v_deptno' and then finally assigned to this stmt variable."

    In this line, he returned ORA-00904 but it was fixed by using =: operator instead of the = operator.

     stmt:=stmt || 'where deptno=:v_deptno'; 
    

    In sql pure when it is intended to add where clause for such purpose, the = comparison operator is used.
    Example:

    Select empno,ename,sal from emp where deptno=10;
    

    But in my pl/sql code, =: operator was used.

    Why is this? Can someone explain what it is? Even if I did my research, but I couldn't find the explanation yet.

    All what I've understood so far, is that this may mean the following (I may be wrong):
    1 - everything first, assign the value 10, of v_deptno, who was declared, to easily compare.
    2. compare the value assigned with deptno.
    On this basis, recover data.


    Thus, he worked as a = + tour operator defined in another high programming language such as c#... etc.
    Example:

    int a = 0;
    
    a =+ 1;    //  a was declared as an integer that has value 0
            // then  we tried to increment by 1 or add by one
             // so it would be  a=a+1;  
                    //which is  a=0+1;
    

    It works the same?

    Here's my complete code pl/sql, just in case...

    --ref cursor
    declare 
    
    type emp_refcur  is ref cursor;
    emp_cv emp_refcur;
    emprec emp%rowtype;
    stmt varchar2(299):= 'select * from emp';
    v_deptno number:=10;
    
    begin
    
    if v_deptno is null then
      open emp_cv for stmt;
    
    else
      stmt:= stmt || ' where deptno=:v_deptno';
      open emp_cv for stmt using v_deptno;
    end if;
    
    loop
    fetch emp_cv into emprec;
    exit when emp_cv%notfound;
    dbms_output.put_line(emprec.empno||chr(9)||emprec.ename||chr(9)||emprec.deptno);
    end loop;
    close emp_cv;
    end;
    /
    
    
    
    
    
    
    
    

    I would you to explain and share with me something to read or give me some clues.

    Thanks in advance!

    In this line, he returned ORA-00904 but it was fixed by using =: operator instead of the = operator.

    There is no "=:" operator.

    The colon character ': ' is used to define a binding (placeholder) variable in the query string.

    The value of this variable must be passed ("linked") after analysis and run step so that the query is executed correctly. That's what the USING clause in your code.

    Thus, he worked as a = + tour operator defined in another high programming language such as c#... etc.

    Example:

    1. int a = 0;
    2. a = + 1;    one has been declared as an integer that is set to 0
    3. then we tried to increment by 1 or add one
    4. so it would be a = a + 1;
    5. which is a = 0 + 1;

    It works the same?

    No, nothing to do with it.

  • Merge clips do not work on Update 9.1.0 (174)

    Don't know if it's just me having some settings wrong or it's a bug with the last update.

    The strange thing happening now, it is that if I slide a merged clip bin to the timeline, they appear very well and in harmony with one of the problems, they are NOT related! There are no media with small 'V' and 'A' in the name of the clip! They seem to just several video and audio clips individual places in the timeline. When you move the video, the audio will not follow. This happens to every project that I currently have. The 'old' that work well in the latest version, and since the day I updated to the newest one and he asked to save a new project file, it is the case.

    And with the new projects also the same problem. Can I create clips merged very well and they appear in stores and in the monitor source very well that it is only when you drag in the timeline, they are individual items. Use first for a long time now and never encountered a problem like that before and not changed anything wise to parameters. Everything was normal on the last version, but the new 9.1.0 update (174)... Man, I don't know...

    In my view, that it is a bug.  You should add another report, make sure that Adobe gets enough many to give priority to a solution.

    Feature request/Bug Report Form

  • Mergeing railways does not work correctly.

    Hello, I use Illustrator for only less than a year. I have read and watched the tutorials, and searched these forums, but I'm having a problem that I can't seem to understand.

    In the link I posted before is an image of a cross, I have someone. The cross is composed of paths that are filled w / black. Basically what I'm trying to do is the merge join / / (whatever the term is) all these paths/forms so that the cross is the only way bypassing the whole thing.

    I tried 'Compound Path' to combine all these paths, but then like the 3D effects will not work correctly.

    I guess what I'm trying to say is that, I become great way/form 1.

    Is this possible? I did in PS several times (just select the vector of all masks and click on the "Merge" button), but none of these options in Illustrator seem to work.

    Thank you!

    -AP

    https://lh6.googleusercontent.com/_8Uw_cMkIhBE/Td0zyiL2I3I/AAAAAAAAIN0/f64Jz6LM6oY/screen% 20shot%202011-05-25%20at%2012.51.54%20PM.png

    Because there is no overlap. There is a gap, even a tiny difference. If shapes overlap, Pathfinder unite will combine their.

  • PS The merge script does not work in Acrobat 8

    As you use with file we can merge the ps files in Acrobat 7 but when use the Acrobat 8 a script to merge the ps file it generate empty PDF. Plese help me to work around this problem and get merged ps to PDF.

    Thanks in advance,

    San

    Use the command line the /F option to distill.

  • Topology Manager / logic Architecture / Working repository

    Hello!

    In the "Logical Architecture" part of the topology Manager, I see the mappings of the physical schema for each logical schema context. Where can I find this information in the repository to work?

    Thank you very much

    Best regards
    Michael

    Hello

    Are you talking about finding the information in the repository tables, if if this information is stored in the master repository.

    SNP_LSCHEMA, SNP_PSCHEMA, SNP_PSCHEMA_CONT

    See you soon

    John
    http://John-Goodwin.blogspot.com/

  • VISA series operation does not work when the PC software performs

    Hello everyone.

    I'm using LabVIEW to communicate with a control via VISA series. I can communicate with this box in most areas very well, as surveillance data function I use without any problem. The only thing I have a problem with the unit is calibrated. Calibration is achieved by opening a binary file and transfer the data of 16 bytes at a time during the series with the help of a 16-byte write the command that has this structure: [command, in this case 'P'] [2 bytes from 3800 HEX address] [16 bytes of data] [checksum 1 byte]. I'm correctly calculate the checksum, and the documentation says that the box must respond to all orders less than 100 milliseconds.

    When I try to do, the zone responds with one E several times (E is supposed to say checksum error, even if I am calculating correctly), then no longer responds to nothing. The strange thing is that this box comes with a software that allows to calibrate it and that the software has no problem with him!

    I tried using SuperMon to capture what the software sends on the series and compare it to what I pass, and from what I see, it sends the same data that I do, only he works and mine is not. I also tried using SuperMon to manually send the writing 16 bytes of a calibration function at a time, and he seems to have the same problem.

    It seems that their software works, I do something wrong. Here is a screenshot of my code that I am using. Any help would be greatly appreciated!

    I contacted officials of the control box and have solved the problem. Control box delay needs 5 to 10 milliseconds between each byte, not all orders than I had initially thought. Thanks for all the useful answers, and especially the number of split tip, which really cleans my code!

  • No score during the merge operation

    Dear all,

    This is the scenario that I'm testing in a 11.2.0.1 the solaris installation program

    SQL> create table mypart
       (ename varchar2(20), doj date)
       partition by range (doj)
       INTERVAL (NUMTOYMINTERVAL(1,'MONTH'))
       STORE IN (users)
      (partition p_2009 values less than (to_date('01-JAN-2010','DD-MON-YYYY'))
      )
    ;  2    3    4    5    6    7    8
    
    

    After the insertion of rare recordings, high values are as below

    SQL>  SELECT table_name, partition_name, high_value, num_rows from user_tab_partitions where table_name =UPPER('mypart');
    
    
    TABLE_NA PARTITION_NAME
    -------- ------------------------------
    HIGH_VALUE                                                     NUM_ROWS
    ------------------------------------------------------------ ----------
    MYPART   P_2009
    TO_DATE(' 2010-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N          1
    LS_CALENDAR=GREGORIA
    
    
    MYPART   SYS_P22
    TO_DATE(' 2010-03-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N          1
    LS_CALENDAR=GREGORIA
    
    
    MYPART   SYS_P21
    
    
    TABLE_NA PARTITION_NAME
    -------- ------------------------------
    HIGH_VALUE                                                     NUM_ROWS
    ------------------------------------------------------------ ----------
    TO_DATE(' 2010-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N          2
    LS_CALENDAR=GREGORIA
    
    
    MYPART   SYS_P23
    TO_DATE(' 2010-06-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'N          1
    LS_CALENDAR=GREGORIA
    
    

    Now I initially merged these two partitions

    SQL> alter table MYPART  merge partitions  for(to_date('02-FEB-2010','DD-MON-YYYY')), for(to_date('03-MAR-2010','DD-MON-YYYY'))  into partition p5;
    
    
    Table altered.
    
    
    SQL>  Select table_name,partition_name from user_tab_partitions;
    
    
    TABLE_NA PARTITION_
    -------- ----------
    
    
    
    MYPART   P_2009
    MYPART   SYS_P23
    MYPART   P5
    

    If I try the merging of Partitions for March and may, she throws an error

    SQL> alter table MYPART  merge partitions  for(to_date('03-MAR-2010','DD-MON-YYYY')), for(to_date('01-MAY-2010','DD-MON-YYYY')) into partition p6;
    alter table MYPART  merge partitions  for(to_date('03-MAR-2010','DD-MON-YYYY')), for(to_date('01-MAY-2010','DD-MON-YYYY')) into partition p6
    *
    ERROR at line 1:
    ORA-14274: partitions being merged are not adjacent
    
    SQL>  alter table MYPART  merge partitions  p5,SYS_P23 into partition p6;
     alter table MYPART  merge partitions  p5,SYS_P23 into partition p6
                                           *
    ERROR at line 1:
    ORA-14274: partitions being merged are not adjacent
    

    So I have to insert a record for the month of April to this adjacent partition with the appearance and then associate it to p5, then finally to p23.

    SQL> insert into mypart values('xxx','07-APR-2010');
    
    
    1 row created.
    MYPART   P_2009
    
    
    TABLE_NA PARTITION_
    -------- ----------
    HIGH_VALUE
    --------------------------------------------------------------------------------
    INT SEG
    --- ---
    TO_DATE(' 2010-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA
    NO  YES
    
    
    MYPART   SYS_P24
    TO_DATE(' 2010-05-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA
    YES YES
    
    
    
    
    TABLE_NA PARTITION_
    -------- ----------
    HIGH_VALUE
    --------------------------------------------------------------------------------
    INT SEG
    --- ---
    MYPART   SYS_P23
    TO_DATE(' 2010-06-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA
    YES YES
    
    
    MYPART   P5
    TO_DATE(' 2010-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA
    NO  YES
    
    
    TABLE_NA PARTITION_
    -------- ----------
    HIGH_VALUE
    --------------------------------------------------------------------------------
    INT SEG
    --- ---
    
    
    
    
    SQL>  alter table MYPART  merge partitions  p5,SYS_P24 into partition p6
      2  /
    
    
    Table altered.
    

    I thought it was the holes between the existing partitions will be automatically merged, but this seems not to happen. Is it a case with partitioning interval? Is there a way to bypass this behavior? Also when I referred to one of the reference material, it is said

    "Front holes higher non-intervalle partition will be silently 'merged' as well.

    But in a real-time scenario where there is a possibility for the records to zero during a particular partition (date or number) Beach, how merge us the partitions after a while to move in the archives?

    So please mark the question ANSWER.

  • The questions using the &amp; &amp; operator logic

    Hello

    I have a dialog box that has 3 buttons on it.

    2 buttons are used to open selection of the folder windows and the last button is an OK button to the script action once 2 records have been selected.

    Here is a snippet of my code

    BTNg.OKBtn.enabled = false;
      
    DFgroup.DFBtn.onClick = function(){   
         DFdefault = new Folder(DARKinputFolder);   
         DFdefault = Folder.selectDialog('****Please Select The Folder Where Your DARK FRAMES Are Located****',DARKinputFolder);
         if ( DFdefault != null ) {
      DARKinputFolder = DFdefault.fsName.toString()
                           DFgroup.DFlabel.text = DARKinputFolder;
                           FolderChecker()
                         
      }
         }
    
    LFgroup.LFBtn.onClick = function(){   
         LFdefault = new Folder(LIGHTinputFolder);  
         LFdefault = Folder.selectDialog('****Please Select The Folder Where Your LIGHT FRAMES Are Located****',LIGHTinputFolder);
          if ( LFdefault != null ) {
      LIGHTinputFolder = LFdefault.fsName.toString()
                           LFgroup.LFlabel.text = LIGHTinputFolder;
                           FolderChecker()
      }
          }
    
    
    
    
    
    function FolderChecker(){
        if (DARKinputFolder !='' && LIGHTinputFolder !=''){// && LFdefault != null){
        BTNg.OKBtn.enabled = true;
        }
    }
    
    

    Ok

    with a bit of violin it looks as if I had a result, here's what I used:

    function FolderChecker(){
       if (DFdefault.exists && LFdefault.exists){
        BTNg.OKBtn.enabled = true;
        }
    }
    

    This seems to work perfectly.

    Thank you for pointing me in the right direction.

Maybe you are looking for