How to compare two lines in PL/SQL?

Hi all

How to compare two lines in PL/SQL? Is there a method I can use to compare their column by column instead?

Any comments would be much appreciated.

PhoenixBai wrote:
By lines I mean, two rows of the same table!

Ah, finally, we get a bit more useful information

and I need to compare the column by column to see if there is a difference between these two rows.

Like this, you mean?

SQL> ed
Wrote file afiedt.buf

  1  with data as (select 1 as id, 'A' as dta, 'B' as dta2 from dual union all
  2                select 2, 'A', 'B' from dual union all
  3                select 3, 'B', 'C' from dual)
  4  --
  5      ,chk as (select &id1 as id1, &id2 as id2 from dual)
  6  --
  7  select case when (
  8    select count(*)
  9    from (
 10      select dta, dta2
 11      from data, chk
 12      where id = id1
 13      minus
 14      select dta, dta2
 15      from data, chk
 16      where id = id2
 17      )
 18    ) = 0 then 'No Difference'
 19          else 'Difference'
 20          end as check_result
 21* from dual
SQL> /
Enter value for id1: 1
Enter value for id2: 2
old   5:     ,chk as (select &id1 as id1, &id2 as id2 from dual)
new   5:     ,chk as (select 1 as id1, 2 as id2 from dual)

CHECK_RESULT
-------------
No Difference

SQL> /
Enter value for id1: 1
Enter value for id2: 3
old   5:     ,chk as (select &id1 as id1, &id2 as id2 from dual)
new   5:     ,chk as (select 1 as id1, 3 as id2 from dual)

CHECK_RESULT
-------------
Difference

SQL>

My only concern is the result of this sql. East - reliable? It can really be used to differentiate the two lines? I mean, the result would be the same, as I do with Java?

Not sure what you mean by "reliable"? SQL is not some kind of generator of random result (by derogation from the use of the DBMS_RANDOM package). If you ask him if 1 + 1 = 2, then it will always give you the right answer.

Tags: Database

Similar Questions

  • How to compare two strings in PL/SQL

    Hi all
    I need to compare two strings, they are equal or not in PL/SQL. Y at - it a function to compare the strings.

    Yes, the sign =.

    You're after something like:

    IF v_string1 = v_string2 THEN
      ...
    ELSE
      ...
    END IF;
    

    ?

    Published by: Boneist on August 27, 2009 11:41

  • How to add two lines when the second row is not visible, but also gets the first data line too?

    Mr President

    Jdev worm is 12.2.1

    How to add two lines when the second row is not visible, but also gets the first data line too?

    I want to add two lines like below picture, but want the second to remain invisible.

    tworows.png

    I asked this question but my way of asking was wrong, that's why for me once again.

    Concerning

    Try to follow these steps:

    1. in the database table to add the new column "JOIN_COLUMN" and add the new sequence "JOIN_SEQ".

    2. Add this new column in the entity object. (You can add this in entity object by right clicking on the entity object and then select "Synchronize with database" then the new column and press on sync)

    3. in your bookmark create button to create only one line NOT 2 rows.

    4 - Open the object entity--> java--> java class--> on the entity object class generate and Tick tick on the accessors and methods of data manipulation

    5 - Open the generated class to EntityImpl and go to the doDML method and write this code

      protected void doDML(int operation, TransactionEvent e)
      {
        if(operation == DML_INSERT)
        {
          SequenceImpl seq = new SequenceImpl("JOIN_SEQ", getDBTransaction());
          oracle.jbo.domain.Number seqValue = seq.getSequenceNumber();
          setJoinColumn(seqValue);
          insertSecondRowInDatabase(getAttribute1(), getAttribute2(), getAttribute3(), getJoinColumn());
        }
    
        if(operation == DML_UPDATE)
        {
          updateSecondRowInDatabase(getAttribute1(), getAttribute2(), getAttribute3(), getJoinColumn());
        }
    
        super.doDML(operation, e);
      }
    
      private void insertSecondRowInDatabase(Object value1, Object value2, Object value3, Object joinColumn)
      {
        PreparedStatement stat = null;
        try
        {
          String sql = "Insert into table_name (COLUMN_1,COLUMN_2,COLUMN_3,JOIN_COLUMN, HIDDEN_COLUMN) values ('" + value1 + "','" + value2 + "','" + value3 + "','" + joinColumn + "', 1)";
          stat = getDBTransaction().createPreparedStatement(sql, 1);
          stat.executeUpdate();
        }
        catch (Exception e)
        {
          e.printStackTrace();
        }
        finally
        {
          try
          {
            stat.close();
          }
          catch (Exception e)
          {
            e.printStackTrace();
          }
        }
      }
    
      private void updateSecondRowInDatabase(Object value1, Object value2, Object value3, Object joinColumn)
      {
        PreparedStatement stat = null;
        try
        {
          String sql = "update table_name set column_1='" + value1 + "', column_2='" + value2 + "', column_3='" + value3 + "' where JOIN_COLUMN='" + joinColumn + "'";
          stat = getDBTransaction().createPreparedStatement(sql, 1);
          stat.executeUpdate();
        }
        catch (Exception e)
        {
          e.printStackTrace();
        }
        finally
        {
          try
          {
            stat.close();
          }
          catch (Exception e)
          {
            e.printStackTrace();
          }
        }
      }
    
  • How to compare two dates and find exactly

    How to compare two dates and find the exact age of the person, no one could be an age of child 2 days or a month, or other.

    I'd really appreciate if someone help o

    Concerning

    After spending 2 hours, I go out with a solution by myself, how ever the function can be customize to check if the user enters date right.

    function findAge(subjectName,fromdate, todate) {
        console.log("findAge(fromdate, todate) is called now "+subjectName+"-->"+fromdate+"-->"+todate);
        if(todate) todate= new Date(todate);
        else todate= new Date();
    
        var age= [], fromdate= new Date(fromdate),
        y= [todate.getFullYear(), fromdate.getFullYear()],
        ydiff= y[0]-y[1],
        m= [todate.getMonth(), fromdate.getMonth()],
        mdiff= m[0]-m[1],
        d= [todate.getDate(), fromdate.getDate()],
        ddiff= d[0]-d[1];
    
        if(mdiff < 0 || (mdiff=== 0 && ddiff<0))--ydiff;
        if(mdiff<0) mdiff+= 11;
        if(ddiff<0){
            fromdate.setMonth(m[1]+1, 0);
            ddiff= fromdate.getDate()-d[1]+d[0];
            --mdiff;
        }
        if(ydiff> 0) age.push(ydiff+ ' year'+(ydiff> 1? 's ':' '));
        if(mdiff> 0) age.push(mdiff+ ' month'+(mdiff> 1? 's':''));
        if(ddiff> 0) age.push(ddiff+ ' day'+(ddiff> 1? 's':''));
        if(age.length>1) age.splice(age.length-1,0,' and ');
        console.log("===============================");
        console.log("Subject age is = "+age.join(''));
        console.log(" age Day = "+ddiff);
        console.log(" age Month = "+mdiff);
        console.log(" age Year = "+ydiff);
        console.log("===============================");
        var subjectAGE =  age.join('');
    
    }
    

    peardox Thanks for the reply

  • How to compare two files to see the differences in the content?

    How to compare two files (one word and a single pdf) to see if the files are identical without having read all 7 pages?

    Thank you

    You cannot compare files of different nature. If you convert the Word file to PDF, you can then compare the two files in Acrobat.

  • can anyone tell how to compare two documents with two controlled with the same mouse pointers

    can anyone tell how to compare two documents with two controlled with the same mouse pointers?

    Windows and OS X can only display a mouse pointer - it is created by the operating system, not the application.

  • How to compare two different backgrounds

    Can one tell me please how to compare two circles as DEVL test?

    I don't know how to compare a project (like DEVL test) but I want to see all the changes in all the objects between two different backgrounds.

    Please help me.
    Thank you.

    use AppDesigner, navigate to tools / compare and report / database

    The target DB access code,
    Press Options
    comparison of Goto tab options & select compare Type = database

  • How to compare two files in Windows 7 prof 64 bit

    I have two files which has several files. I would like to compare the two files and see which folder has more files, and what are their names? How I do that in Windows 7 prof 64 bit? Is useful that I can download?

    Hey dude-

    Here's the right way to do without external downloads.  It looks like a lot at first, but once you have done so, it is very easy.  It works in all versions of Windows 7 to 95.  For our example, let's assume you're to compare two directories named 'A' and 'B '.

    1. run cmd.exe to get a command prompt.  (In Windows 7, the powershell will not work for this, FYI.)  Then do it again, so that you have two of them opened next to each other.

    2. in each window go into the directories you want to compare.  (With the help of the 'cd' command.  If you're not comfortable with that, then you should probably go with the external utilities, except if you want to learn the tricks of the command prompt.)

    3. type ' dir/b > A.txt' in one window and "dir/b > B.txt' in the other."  Now you have two text files that list the contents of each directory.  The flag/b means stripped, which removes the list down to only the names of files directories.

    4. move is the same folder as A.txt B.txt.

    5. Type "CF A.txt B.txt".  The command "CF" means file to compare.  It will spit out a list of the differences between the two files, with an additional line of text above and below each difference, so that you know where they are.  For more options on the way in which the output is in the format, type ' fc /? "at the command prompt.  You can also pipe the differences in another file using something like ' CF A.txt B.txt > differences.txt'.

    Have fun.

  • How to compare two source codes?

    Hello

    I would like to know if there is a way to compare the codes from different sources (different .vi or different groups of the vi...) in LabView?

    Our 2 production lines are similar, and I would like to know if there are differences in the 2... 2 production lines management programs because we have to make some changes.

    Thanks for your help

    Benedict

    ... Adding to the message of Putnam...

    We compare two available "Screw" and "VI predetermined.

    It will highlight the differences.

    Ben

  • How to compare two users (2)

    Hi all

    11.2.0.1

    AIX 6.1

    I have two databases (dev & uat) on separate servers with equal facility.

    On each database, I created a schema user "batchdba" and gave them same privilege "dba".

    But when I import (impdp) the dumpfile output from other databases that encrypted table and with the same command, it runs successfully on DEV but not on the UAT.

    How can I compare that privilege is missing from the UAT for the user "batchdba". Or how to compare the privileges granted to these two patterns?

    Thank you very much

    zxy

    You can query the following views on the databases to compare the result

    dba_tab_privs

    dba_role_privs

    dba_sys_privs

    query these tables with the status RECIPIENT = "BATHCDBA."

  • How to compare two fields in two separate databases

    Hello

    Can we compare two columns in two separate databases with a single script.



    See you soon

    Sexy

    Hello

    If you mean Oracle to SQL Server while you'd have to put the hand in the Pocket and buy ODBC connectivity for this...

    If it's just one large may export your data and import into an Oracle table and make your unique comparison.

    Kind regards

    Robert.

  • How to compare two columns in Xl

    I want to compare two columns in the file of Xl. column A contains phrases and column B contains the words

    For example

    Column A                                                                       Column B                                                                           Column C

    I have an Apple and I'll eat every day Apple Apple

    I have a banana and eat weekly banana papaya

    Oranges are rich in nutritions cauliflowers Oranges

    Papaya is good for health                                               Grapes                                                                                 Papaya

    Oranges

    Lichi

    Banana

    I want to check each value of column B in each cell in column A, and if it matches then it should return the corresponding value in the result to me. Column C should Look Like as shown above.

    Can someone point me in the right direction here of what formula to use for this Xl.

    Thank you

    This is a forum for Mac OS X technologies, so here's an Applescript solution:

    1. Copy-paste the script in the Script Editor
    2. Select the cells in columns A and B
    3. Command + c to copy to the Clipboard
    4. Click on the button "run" in the Script Editor
    5. Click once in the top cell in column C where you want the data
    6. Command + v to paste

    Here are the results:

    There is no verification error here. You must select and copy to the Clipboard before the race.

    SG

    the value LstOfLsts to makeListOfLists (the Clipboard as a 'class utf8 ')

    the value theSentences to getCol1Vals (LstOfLsts)

    the value collected in getCol2Vals (LstOfLsts)

    game of theMatches to «»

    Repeat with I in collected items

    If theSentences contains I then ¬

    the value of theMatches to theMatches & i & return

    end Repeat

    Set the Clipboard for theMatches

    to getCol1Vals (LofL)

    game of col1Vals to «»

    Repeat with en LofL points

    the value col1Vals to the col1Vals & "" & i point 1

    end Repeat

    end getCol1Vals

    to getCol2Vals (LofL)

    the value col2Vals to {}

    Repeat with en LofL points

    If i's point 2 is not "" then ¬

    i copy point 2 to the end of col2Vals

    end Repeat

    return col2Vals

    end getCol2Vals

    at makeListOfLists (theTxt)

    value was to theTxt paragraphs

    the value text point of delimiters

    the value theListOfLists to {}

    Repeat with I from 1 to count was

    the value theListOfLists to the theListOfLists & {the was point i text elements}

    end Repeat

    the value point text delimiters to «»

    return theListOfLists

    end makeListOfLists

  • How to compare two different interfaces without creating different versions?

    I know that if we create two different versions of the same interface, so we can compare the two versions. But is it possible to compare two similar interfaces to each other, created in different folders?

    Hi 2782749,

    Not sure if it works with 11g, but possible in 12 c. In the main menu, click on ODI-> browser Version.

    Click on both interfaces, and then click Compare in the upper right corner of the browser Version.

    You can also export and a tool of comparison on the xml files to highlight the differences. The result will be about the same.

    Comparison tools:

    Windows: Compare plugin for Notepad ++

    UNIX: diff

    It will be useful.

    Kind regards

    JeromeFr

    [edited after realizing that a comparison even works with various items].

  • How to compare two dates and times in BPEL?

    Hi all
    I need to compare two dates and times in a switch activity, but could not find any function for her.

    My switch like this activity:

    case Date1 > date2:
    do something;
    otherwise:
    do something;

    He is not such a function in 'The functions of Date' and can not find this function to xpath.

    IBE, there is no function for a period of time to make (less one date of another?...) If this return to the data compare question).

    Thank you.

    Hello

    Logic function as more/less function can be used to compare two dates so that same comapring two numbers.

    Ex: If your variable reception contains two pieces of data such as date1 and date2, then you can use format in condition switch below.

    XpathXpression (date1) > XpathXpression (date2)

    hope this will help you.

  • How to compare two TABLES and different lines of list?

    I have two structural equal paintings aaa and bbb
    that (could) have different lines.

    How can I compare the tables and display different lines?

    Peter

    Something like this->

    SELECT aaa.*,'bbb' "Not present in" FROM aaa
    MINUS
    SELECT bbb.*,'bbb' "Not present in" FROM bbb
    UNION ALL
    (
    SELECT bbb.*,'aaa' "Not present in" FROM bbb
    MINUS
    SELECT aaa.*,'aaa' "Not present in" FROM aaa
    )
    

    Kind regards.

    LOULOU.

Maybe you are looking for