Delete data from a table with joins

Hey guys,.

IV struggled for a while with a sql now.
I'm trying to remove some data from urole based on the www.lesormes.com in the select part.
The selection is correct, but the part delete Deletes all data in the table urole and not only those found in the select.

How can I delete all data by using a join?


DELETE FROM urole
WHEN THERE IS)
SELECT *.
User JOIN urole
ON user.userid = urole.userid
AND user.audit_version = urole.audit_version
JOIN secrole
ON urole.roleid = secrole.roleid
WHERE user.audit_current = 'Y '.
AND secrole.audit_current = 'Y '.
AND IN secrole.rolename
('X',
« Y »,
« Z »,
));

Thanks for your help in advance!

Hello

Welcome to the forum!

Chances are, you don't want to join in the subquery EXISTS of EPM; It is more likely you want just like this correlated subqueries:

DELETE FROM urole
WHERE  EXISTS (
                  SELECT  0
           FROM    user
           WHERE   user.userid      = urole.userid
           AND     user.audit_version = urole.audit_version
           AND     user.audit_current = 'Y'
           )
AND    EXISTS (
                  SELECT  0
           FROM    secrole
           WHERE   secrole.roleid         = urole.roleid
           AND     secrole.audit_current = 'Y'
           AND     secrole.rolename          IN ( 'X',
                                                    'Y',
                                      'Z'     -- No comma here
                                       )
           )
;

or maybe an IN subquery:

DELETE FROM urole
WHERE   p_key  IN
            (
            SELECT  urole.p_key
            FROM    user
            JOIN    urole     ON     user.userid          = urole.userid
                                  AND     user.audit_version      = urole.audit_version
            JOIN    secrole     ON     urole.roleid           = secrole.roleid
            WHERE   user.audit_current     = 'Y'
            AND     secrole.audit_current     = 'Y'
            AND     secrole.rolename      IN ( 'X',
                                                 'Y',
                                   'Z'
                                 )
            )
;

where p_key is a unique key (not necessarily a single column) of urole.

It's just a guess; That's all I can do with the information you have posted. Test this carefully before to try it on your actual data.

Whenever you have a problem, it allows to post a small example of data (CREATE TABLE and INSERT statements) and the results desired from these data.
In the case of a DML (such as DEL) problem, the sample data must re - create the tables as they are to the DML, and the results will be the content of the modified table (urole) after the DML.

Furthermore, there is a built-in function called user, the user is not a good name for a table.

Tags: Database

Similar Questions

  • data from 3 tables with later dates

    Hello
    Need help with the PL/SQL code, I need to write a code that will get the data from 3 tables with the most recent date.

    For an individual ACT_CODE the output of the SQL query should display the data including the last dates back to 3 tables, if there is no
    Date of the table, it should show the remaining data (think that the left join will do here)

    Names of tables:
    Institution_UPDT aiu
    AC ASQ_CONTACT
    GR_AUTHORIZE gr

    All 3 tables have ACT_Code in common

    Column names

    INSTITUTION_UPDT IAU - IAU. ACT_CODE, AIU.project_id as proj, IAU. UPDT_TYPE_ID, IAU. User_id, IAU. UPDT_DATE

    ASQ_CONTACT ac - ac. ACT_CODE as contact_code, ac.project_id, ac.first_name, ac.middle_initial, ac.last_
    Name, AC.title, AC. Status, AC.status_date

    GR_AUTHORIZE gr - GR ACT_CODE as grad_code, gr.name, gr.title AS grad_title, gr.submit_date


    Are the names of the columns date
    AC.status_date,
    IAU. UPDT_DATE and
    Gr.submit_date

    Thanks to you all
    appreciate your help

    Jesh

    Hi, Ngoumba,

    If a given ACT_Code couldn't miss from any of the tables, then you will use better full outer joins, not a join left outer.

    Perhaps it would be more effective to make a UNION of the three tables, then rotate the results in three datecolumns.

    You can use the GROUP BY aggregation to get the last date for each ACT_Code in each table.
    If you need other columns in the row which is the last date, you can use the ROW_NUMBER analytic function, like this:

    SELECT  ACT_Code
    ,     updt_date
    ,     ROW_NUMBER () OVER ( PARTITION BY  ACT_Code
                              ORDER BY          updt_date     DESC
                      ) AS r_num
    FROM    institution_updt
    

    The lines with r_num = 1 are the most recent

    This is a technique of ot the UNION-PIVOT example:

    WITH     union_data     AS
    (
         SELECT    ACT_Code
         ,       MAX (updt_date)     AS last_date
         ,       1                  AS table_id
         FROM       institution_updt
         GROUP BY  ACT_Code
    UNION ALL
         SELECT    ACT_Code
         ,       MAX (status_date)     AS last_date
         ,       2                  AS table_id
         FROM       ASQ_Contact
         GROUP BY  ACT_Code
    UNION ALL
         SELECT    ACT_Code
         ,       MAX (submit_date)     AS last_date
         ,       3                  AS table_id
         FROM       GR_Authorize
         GROUP BY  ACT_Code
    )
    SELECT       ACT_Code
    ,       MAX (CASE WHEN table_id = 1 THEN last_date END)     AS aiu_updt_date
    ,       MAX (CASE WHEN table_id = 2 THEN last_date END)     AS ac_status_date
    ,       MAX (CASE WHEN table_id = 3 THEN last_date END)     AS gr_submit_date
    FROM       union_data
    GROUP BY  ACT_Code
    ORDER BY  ACT_Code
    ;
    

    Published by: Frank Kulash, on September 16, 2009 15:02
    Added UNION-pivot example

  • How to export data from the table with the colouring of cells according to value.

    Hi all

    I use jdeveloper 11.1.1.6

    I want to export data from the table with a lot of formatting. as for color cells based on value and so much. How to do this?

    You can find us apache POI-http://poi.apache.org/

    See this http://www.techartifact.com/blogs/2013/08/generate-excel-file-in-oracle-adf-using-apache-poi.html

  • How publish data from the table with some data loss all post in the forum

    I wonder how people are displayed the data in the table or the result of a query with losing them its format from Sqlplus display when they post in the forums of Oracle. I searched on the basis of knowledge of DB but I see no article about it. can you please help me or direct me to this link, I tried different options using code and other tags but nothing has worked, thank you for your help. Thank you.

    Edited by: Ariean October 3, 2011 12:34

    You can click on the link to the FAQ at the top right: http://wikis.sun.com/display/Forums/Forums+FAQ.

  • How to merge data from the table with a single line

    Hello

    I have three tables subscription_type, the address and the person. Here are the details of the table

    Person Subscription_type Address                                           

    Person_Id AdressType_id Address_id

    Person_name Description Address_type_id

    Person_id

    Address details


    There are three types of different address - home, postal and previous.

    Each person can have these three different addresses.

    I want to create a view that displays all addresses of three of each person in the table of the person in a single line.

    Any help please

    In your example, there are 2 rows of columns street1, TOWN, SUBURB etc for a single person. To convert this into a single line, with the new columns we could simply use CASES or DECODE in the select as the SQL below. To understand why consolidation function THAT MAX is used - remove the MAX and GROUP BY in SQL keyword and try.

    Select full_name

    , max (case when description = "Home" then end street1) Home_Street

    , max (case when description = "Home" then end suburb) home_suburb

    , max (case when description = end of the "Home" then City) home_city

    , max (case when description = "Home" then postal code end) home_postcode

    , max (case when description = "Home" then end state_name) home_state

    , max (case when description = 'Postal' then end street1) Postal_Street

    , max (case when description = 'Postal' and then end of suburb) Postal_suburb

    , max (case when description = 'Postal' then the city) Postal_city

    , max (case when description = 'Postal' and then end of CP) Postal_postcode

    , max (case when description = 'Postal' then state_name end) Postal_state

    , max (case when description = "Back" then end street1) Prev_Street

    , max (case when description = "Back" then end suburb) Prev_suburb

    , max (case when description = "Back" then city end) Prev_city

    , max (case when description = "Back" then postal code end) Prev_postcode

    address a

    S State

    No p

    Subscription_type att

    where a.person_id = p.person_id

    and a.state_id = s.state_id

    and a.address_type_id = att.address_type_id

    Full_name group

  • Migration of data from a table to another table

    have a table1 that includes the existing data in the format.

    ~@!%~X1~@!%~Y1 in three different coulmns

    creates a new empty table and the need to migrate the data above, which is present in 3 different columns in a column in the new table, as shown in the example below.

    table 1 existing data (| separator of columns for formatting)
    ------------------------------------------------------------------------------------------------------------------------------------
    ID name1 | Name2. Name3
    123 ~@!%~X1~@!%~Y1 | ~@!%~X2~@!%~Y2 | ~@!%~X3~@!%~Y3
    234 ~@!%~X4~@!%~Y4 | ~@!%~X5~@!%~Y5 | ~@!%~X6~@!%~Y6
    456 ~@!%~X7~@!%~Y7 | ~@!%~X8~@!%~Y8 |     ~@!%~X9~@!%~Y9


    Table 2, which will initially be empty and after migration, it should look as follows.

    ID name1
    ----------------------------------------------------------------------------------------------------------------------------
    123 ~@!%~X1~@!%~Y1 & & ~@!%~X2~@!%~Y2 & & ~@!%~X2~@!%~Y2
    234 ~@!%~X4~@!%~Y4 & & ~@!%~X5~@!%~Y5 & & ~@!%~X6~@!%~Y6
    456 ~@!%~X7~@!%~Y7 & & ~@!%~X7~@!%~Y7 & & ~@!%~X7~@!%~Y7

    as shown in the example above

    Name1 column has ~@!%~X1~@!%~Y1
    Column name2 has ~@!%~X2~@!%~Y2
    Name3 column has ~@!%~X3~@!%~Y3

    Once the data is migrating from table 1 for id - 123 looks like below, before joining data from 3 tables, I need apopend & & for each for the token I read of the tabl1 of name1 to end ii should be added "& &" also when I read the name2 I add "& &" at the end of the string before the concatination.

    Here's the sample that deals with data for id - 123 with & & (only & & other symbols are part of the data)

    ~@!%~X1~@!%~Y1 & & ~@!%~X2~@!%~Y2 & & ~@!%~X2~@!%~Y2

    need help in writing a note of migate

    Published by: [email protected] on April 2, 2010 15:42

    Hello

    You are looking for something like this

    CREATE TABLE table_new
    AS
       (SELECT id, name1 || '&&' || name2 || '&&' || name3 name1
        FROM table1);
    

    or if you have the table ready

    INSERT INTO table_new
       (SELECT id, name1 || '&&' || name2 || '&&' || name3 name1
        FROM table1);
    

    Thank you

    Alen

  • I want to delete data from my i cloud storage for the little free space without increasing the storage capacity. How to do?

    I want to delete data from my i cloud storage for the little free space without increasing the storage capacity. How to do?

    Storage of parameters/iCloud/Storage/manage or delete some of the data being synchronized with iCloud, such as photos.

  • Inserting data from one table to another table

    Hello

    I have the following SQL where I am updating a table by adding new data from another table, but without success.

    INSERT INTO
    () TOP_PROSPECTS
    COMMON_ID
    DATE_ADDED
    REVIEW_RANK
    EVAL_DATE
    PM_ASSIGN
    WHY_NOTES)
    SELECT
    t.COMMON_ID
    t.DATE_ADDED
    t.REVIEW_RANK
    t.EVAL_DATE
    t.PM_ASSIGN
    t.WHY_NOTES
    Of
    TEMP_IVAN_MARY t
    WHERE
    COMMON_ID <>t.COMMON_ID

    Any suggestions?

    Thank you.

    Published by: user13822709 on August 14, 2012 09:14

    Published by: user13822709 on August 14, 2012 09:15

    Is that what you're trying to do with the insert. I think there may be a sign {noformat}<{noformat}{noformat}>{noformat} missing in the where clause. This site eat those, so you need to use the equivalent! = post here.

    If I'm wrong about the missing trader, then it looks like you want to insert rows in temp_ivan_mary that are not already in top_prospects. If Yes, then you need something like:

    insert into top_prospects
       (common_id, date_added, review_rank, eval_date, pm_assign,
        why_notes)
    select t.common_id, t.date_added, t.review_rank, t.eval_date,
           t.pm_assign, t.why_notes
    from temp_ivan_mary t
    where t.common_id not in (select common_id from top_prospects
                              where common_id is not null)
    

    Function index and data available volumnes etc. then a mergr can be more effective. Something like:

    merge into top_prospects p
       using (select common_id, date_added, review_rank, eval_date,
                     pm_assign, why_notes
              from temp_ivan_mary) t
       on (p.common_id = t.common_id)
       when not matched then
          insert (common_id, date_added, review_rank, eval_date, pm_assign,
                  why_notes)
          values (t.common_id, t.date_added, t.review_rank, t.eval_date,
                  t.pm_assign, t.why_notes)
    from temp_ivan_mary t
    

    John

  • extract data from a table to a text file

    I need to extract data from a table to a text file, I twist my output is the following...

    bash-3. $00 vi tap3roamercosts_20110915144318.txt
    lines of 'tap3roamercosts_20110915144318.txt' 393948, 23464348 characters
    ^ LAFGTD | N | 2011090203000001 | 13242514000064 | 1. 0 | 20. 41220 | 02-SEVEN.-11. 01-SEPT.-11. 0 | 13244
    755. 64. 70. 0093794428588 | 0093796234547 | 0 | S2 | E | 412200306902634 | 8. 1. 61500 | 16081 |
    | HW | Call to the Roamer. 0 | I have | Roaming billing Inroamer Plan | 1_0_1 | LKA | N_I_Independent
    the time of day. Rate of Roamer SMST systems | AFGTD20110902030000010001013242514000064 |
    |||||||||||||||||||||

    AFGTD | N | 2011090203000001 | 13242612000044 | 1. 0 | 20. 41220 | 02-SEVEN.-11. 01-SEPT.-11. 0 | 13244
    853. 44. 70. 234. 0093793252818 | 0 | S2 | E | 412200303198150 | 8. 1. 61000 | 12403 | HW | -Ro
    bitter call | 0 | I have | Roaming billing Inroamer Plan | 1_0_1 | N_I_Independent time of Da
    There | Rate of Roamer SMST systems | AFGTD20110902030000010001013242612000044 |
    ||||||||

    AFGTD | N | 2011090203000001 | 13242612000047 | 1. 0 | 20. 41220 | 02-SEVEN.-11. 01-SEPT.-11. 0 | 13244
    853. 47. 70. 234. 0093793252818 | 0 | S2 | E | 412200303198150 | 8. 1. 61000 | 12403 | HW | -Ro
    bitter call | 0 | I have | Roaming billing Inroamer Plan | 1_0_1 | N_I_Independent time of Da
    There | Rate of Roamer SMST systems | AFGTD20110902030000010001013242612000047 |
    ||||||||
    .
    .
    .
    .
    .

    Please help me how to format my output each record in simple lines in oracle sqlplus. Here are the settings I used...

    TERMOUT OFF SET;
    SET ECHO OFF;
    SET LINESIZE 100000;
    THE VALUE OF NEWPAGE 0;
    SET SPACE 0;
    SET PAGESIZE 50000;
    SET FEEDBACK OFF;
    SET THE OFF POSITION;
    SET TRIMSPOOL
    SET THE TAB

    And what was wrong with the answers that you have on your previous thread?

    How to extract data in a text file

    Please do not ask the same question again. If there is a problem with the answers provided, then continue on the same thread that tell people what is the problem.

    Saying that, this is another possibility for you...

    As user sys:

    CREATE OR REPLACE DIRECTORY TEST_DIR AS '\tmp\myfiles'
    /
    GRANT READ, WRITE ON DIRECTORY TEST_DIR TO myuser
    /
    

    As myuser:

    CREATE OR REPLACE PROCEDURE run_query(p_sql IN VARCHAR2
                                         ,p_dir IN VARCHAR2
                                         ,p_header_file IN VARCHAR2
                                         ,p_data_file IN VARCHAR2 := NULL) IS
      v_finaltxt  VARCHAR2(4000);
      v_v_val     VARCHAR2(4000);
      v_n_val     NUMBER;
      v_d_val     DATE;
      v_ret       NUMBER;
      c           NUMBER;
      d           NUMBER;
      col_cnt     INTEGER;
      f           BOOLEAN;
      rec_tab     DBMS_SQL.DESC_TAB;
      col_num     NUMBER;
      v_fh        UTL_FILE.FILE_TYPE;
      v_samefile  BOOLEAN := (NVL(p_data_file,p_header_file) = p_header_file);
    BEGIN
      c := DBMS_SQL.OPEN_CURSOR;
      DBMS_SQL.PARSE(c, p_sql, DBMS_SQL.NATIVE);
      d := DBMS_SQL.EXECUTE(c);
      DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab);
      FOR j in 1..col_cnt
      LOOP
        CASE rec_tab(j).col_type
          WHEN 1 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000);
          WHEN 2 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_n_val);
          WHEN 12 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_d_val);
        ELSE
          DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000);
        END CASE;
      END LOOP;
      -- This part outputs the HEADER
      v_fh := UTL_FILE.FOPEN(upper(p_dir),p_header_file,'w',32767);
      FOR j in 1..col_cnt
      LOOP
        v_finaltxt := ltrim(v_finaltxt||','||lower(rec_tab(j).col_name),',');
      END LOOP;
      --  DBMS_OUTPUT.PUT_LINE(v_finaltxt);
      UTL_FILE.PUT_LINE(v_fh, v_finaltxt);
      IF NOT v_samefile THEN
        UTL_FILE.FCLOSE(v_fh);
      END IF;
      --
      -- This part outputs the DATA
      IF NOT v_samefile THEN
        v_fh := UTL_FILE.FOPEN(upper(p_dir),p_data_file,'w',32767);
      END IF;
      LOOP
        v_ret := DBMS_SQL.FETCH_ROWS(c);
        EXIT WHEN v_ret = 0;
        v_finaltxt := NULL;
        FOR j in 1..col_cnt
        LOOP
          CASE rec_tab(j).col_type
            WHEN 1 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_v_val);
                        v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',',');
            WHEN 2 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_n_val);
                        v_finaltxt := ltrim(v_finaltxt||','||v_n_val,',');
            WHEN 12 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_d_val);
                        v_finaltxt := ltrim(v_finaltxt||','||to_char(v_d_val,'DD/MM/YYYY HH24:MI:SS'),',');
          ELSE
            v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',',');
          END CASE;
        END LOOP;
      --  DBMS_OUTPUT.PUT_LINE(v_finaltxt);
        UTL_FILE.PUT_LINE(v_fh, v_finaltxt);
      END LOOP;
      UTL_FILE.FCLOSE(v_fh);
      DBMS_SQL.CLOSE_CURSOR(c);
    END;
    

    This allows the header line and the data to write into files separate if necessary.

    for example

    SQL> exec run_query('select * from emp','TEST_DIR','output.txt');
    
    PL/SQL procedure successfully completed.
    

    Output.txt file contains:

    empno,ename,job,mgr,hiredate,sal,comm,deptno
    7369,"SMITH","CLERK",7902,17/12/1980 00:00:00,800,,20
    7499,"ALLEN","SALESMAN",7698,20/02/1981 00:00:00,1600,300,30
    7521,"WARD","SALESMAN",7698,22/02/1981 00:00:00,1250,500,30
    7566,"JONES","MANAGER",7839,02/04/1981 00:00:00,2975,,20
    7654,"MARTIN","SALESMAN",7698,28/09/1981 00:00:00,1250,1400,30
    7698,"BLAKE","MANAGER",7839,01/05/1981 00:00:00,2850,,30
    7782,"CLARK","MANAGER",7839,09/06/1981 00:00:00,2450,,10
    7788,"SCOTT","ANALYST",7566,19/04/1987 00:00:00,3000,,20
    7839,"KING","PRESIDENT",,17/11/1981 00:00:00,5000,,10
    7844,"TURNER","SALESMAN",7698,08/09/1981 00:00:00,1500,0,30
    7876,"ADAMS","CLERK",7788,23/05/1987 00:00:00,1100,,20
    7900,"JAMES","CLERK",7698,03/12/1981 00:00:00,950,,30
    7902,"FORD","ANALYST",7566,03/12/1981 00:00:00,3000,,20
    7934,"MILLER","CLERK",7782,23/01/1982 00:00:00,1300,,10
    

    The procedure allows for the header and the data to separate files if necessary. Just by specifying the file name "header" will put the header and the data in a single file.

    Adapt to the exit of styles and different types of data are needed.

  • Export data from the table

    Hello. Is it possible to export data from a table in Oracle using SQL Loader? If Yes, can you tell a good examples?

    Hello

    Hello. Is it possible to export data from a table in Oracle using SQL Loader?

    No, with SQL * Loader, you can load data from external files into tables not export.

    coil c:\temp\empdata.txt
    sqlplus abc.sql (assumes that abc.sql runs select * from emp)
    spool off

    It cannot work like this, because the declaration of the COIL is not recognized outside the SQL * Plus the term.

    But, you can include the statement of the COIL in abc.sql like this:

    spool c:\temp\empdata.txt
    select * from emp;
    spool off
    

    Then, you just have to run the SQL script as follows:

    sqlplus  @abc.sql 
    

    However, I advise you to use Oracle SQL Developer, this is a free tool and with it you can export a Table in several types of format (html, xml, csv, xls,...).

    Please find attached a link to this tool:

    http://www.Oracle.com/technetwork/developer-tools/SQL-Developer/Overview/index.html

    Hope this helps.
    Best regards
    Jean Valentine

  • Is it possible to see/get the data from the table to a dump file

    I have files dmp generated using expdp on oracle 11 g...

    expdp_schemas_18MAY2013_1.dmp

    expdp_schemas_18MAY2013_2.dmp

    expdp_schemas_18MAY2013_3.dmp

    Can I use a settings file given below to get the data from the table in the file sql or impdp the only option to load the data of table in database.

    VI test1.par

    USERID = "/ as sysdba".

    DIRECTORY = DATA

    dumpfile=expdp_schemas_18MAY2013%S.dmp

    SCHEMAS = USER1, USER2

    LOGFILE = user_dump_data.log

    SQLFILE = user_dump_data. SQL

    and impdp parfile = test1.par.

    No,

    DataPump cannot retrieve a dumpfile data in a flat file.

    Dean

  • How can I insert and delete pages from a pdf with acrobat 10 X?

    How can I insert and delete pages from a pdf with acrobat 10 X?

    Otherwise, don't forget that your page thumbnails Panel is open and click the icon highlighted in this image, just under the title.

    You will see a drop-down list with the options you need.

  • How can I insert data from another table into a table containing a timestamp column

    How you insert data from another table in a table if the target table contains a timestamp column. I tried to set the default value of GETDATE() column in the target table, but it does not work.


    I use MS SQL

    Sorry, I managed to get around this by inserting null as the value

  • Extraction of data from two tables without discounting

    Hi friends,

    I have a problem I want to extract data from two tables without discount in the text field when I will enter any value in a text field, then the value of corressponding must come to textfield corressponding.

    for example. There are two table A and B.
    Table A has Colunm

    S_ID number;
    C_ID Varchar2 (30);
    VARCHAR2 (4) s;

    Second table B Colunm name

    S_ID number;
    What varchar (30);
    L_Name varchar (20);

    When I enter in a text field then the c_id 101 s_id, dry, first_name and last_name should come to corressponding text without refresh fields.

    How can I do that.

    Thank you
    Maury

    You can use Ajax and there are tons of good examples out there for this purpose;
    For example [http://apex.oracle.com/pls/otn/f?p=31517:236:1876567353842241]

  • Insert data from 3 tables of diff with some transpose logic

    Hi all

    I need to create a MS which will have three settings:

    Mast_report_id number, posted_on_date date, number of redord_id

    I have four tables which one is the destination and reset three source tables:

    The source tables:

    1 - mast_report

    create the table MAST_REPORT

    (

    MAST_REPORT_ID Number (38) not null,

    ANNUAL NUMBER (38),

    TITLE VARCHAR2 (500),

    STATUS VARCHAR2 (10),

    DATE OF POSTED_ON,

    NO_OF_PAGES NUMBER (8).

    BILLABLE_PAGES NUMBER (8).

    MAST_LANGUAGE VARCHAR2 (20).

    CONTRIBUTOR VARCHAR2 (80).

    CRAWL_DATE TIMESTAMP (6) default sysdate,.

    FILE_NAME VARCHAR2 (30),

    PAGE_PRICE NUMBER (10,2).

    DOC_PRICE NUMBER (10,2).

    CONTRIBUTOR_ID NUMBER (20)

    );

    2 - report_details:

    create the table REPORT_DETAILS

    (

    RECORD_ID Number (38) not null,

    DOC_ID Number not null, (38)

    ATTRIBUTE_TYPE VARCHAR2 (10),

    ATTRIBUTE_VALUE VARCHAR2 (200),

    REPORT_TYPE VARCHAR2 (100),

    ATTRIBUTE_ID VARCHAR2 (80)

    );

    3 - filters_for_docid:

    create the table FILTERS_FOR_DOCID

    (

    FILTER_ID Number not null, (38)

    CONTRIBUTOR VARCHAR2 (100),

    AUTHOR VARCHAR2 (100) default not null, "No. FILTERS".

    COUNTRY VARCHAR2 (100) default not null, "No. FILTERS".

    VARCHAR2 (100) region "No. FILTERS" not null default,

    COMPANY VARCHAR2 (100) default not null, "No. FILTERS".

    INDUSTRY VARCHAR2 (100) default not null, "No. FILTERS".

    VARCHAR2 (100) of the default OBJECT not null, "No. FILTERS".

    CREATED_DATE TIMESTAMP (6) SYSTIMESTAMP not null default,

    REPORT_TYPE VARCHAR2 (100) default not null, "No. FILTERS".

    NOM_FLUX VARCHAR2 (200),

    CHANNEL_ID NUMBER (8).

    NUMBER OF CU_ID

    );

    Destination table: filtered_document

    database version:

    BANNER
    1Oracle Database 11 g Release 11.2.0.1.0 - 64 bit Production
    2PL/SQL Release 11.2.0.1.0 - Production
    3CORE11.2.0.1.0Production
    4AMT for Linux: Version 11.2.0.1.0 - Production
    5NLSRTL Version 11.2.0.1.0 - Production

    As I menteioned above the user will pass three parameters: Mast_report_id, posted_on_date, redord_id

    Here, I need to take more condition (>) to the three parameters.

    For the extraction of data, the logic is below:

    Mast_report table has two columns mast_report_id and posted_on, we need to take a larger than the condition as:

    "Select * from mast_report where and mast_report_id > 7326280 and posted_on > 25 may 2015;

    It will show many recordings roughly 10,000 with all the columns including annual column, this annual column is card with doc report_details of the table

    Now report_details table, we need recover data with annual report_details = (all the table of mast_report annual that we extract our first query) and record_id > settings of this sp record id.

    lets assume he'll again get 10000 files with all the columns.

    Now the main logic is to extract the data of using our highest performance and the third table FILTERS_FOR_DOCID.

    Assume that this is the result of our query above:

    RECORD_IDANNUALATTRIBUTE_TYPEATTRIBUTE_VALUEREPORT_TYPEATTRIBUTE_ID
    17057411269222703COMPANYTGS NOPEC GEOPHYSICAL COMPANY ASASOCIETY REPORT100203621
    27112370469222704COMPANYVOLVO ABSOCIETY REPORT100062389
    37096287469222713COMPANYPARTNERRE LTD.SOCIETY REPORT100037448
    47056915069222713COMPANYPARTNERRE LTD.SOCIETY REPORT100037448
    57056788869222729COMPANYVITAMIN SHOPPE INC.SOCIETY REPORT108008193
    67038574869222749COMPANYABB LTD.SOCIETY REPORT100096991
    77096286569222756COMPANYMETTLER-TOLEDO INTERNATIONAL INC.SOCIETY REPORT100081108
    87056897869222756COMPANYMETTLER-TOLEDO INTERNATIONAL INC.SOCIETY REPORT100081108
    97038576169222777COMPANYSUNCOR ENERGY INC.SOCIETY REPORT100063497
    107056938969222784COMPANYSYMANTEC CORP.SOCIETY REPORT100043382
    117112676469222786COMPANYARROW ELECTRONICS INC.SOCIETY REPORT100084937

    here if using separate attribute_type of report_details, we have:

    Select distinct report_details attribute_type;

    ATTRIBUTE_TYPE
    1Object
    2INDUSTRY
    3COUNTRY
    4REGION
    5AUTHOR
    6COMPANY

    Here you can see over the structure of the third table table FILTERS_FOR_DOCID where above these distinct values of the second table are the columns of the third:

    And you can see the output of the query above to report_details table, including the attribute_type and attribute_type value.

    Here, we need to find in the third table with each attribute_type and values of his attribute_type_value with the topic of the third table columns, industry,... He values.

    as: consider attribute_type values 'COMPANY' and its "TGS NOPEC GEOPHYSICAL COMPANY ASA" attribute_value now we need to find

    in SOCIETY the third table cloumn with value "TGS NOPEC GEOPHYSICAL COMPANY ASA"... same for others...

    I must now go look for these lines of the third table which all combinations get matched, need us compare with like operator between the attribute_type column value and the value of the columns in the third diff table.


    Thanks in advance

    I have impleted above the requirement using pivot, CTE, and cases in where clause.

    Thanks for all the help

Maybe you are looking for

  • Satellite L10-205: CD Writer 2 DVD writer

    Mr. President is respected...I would like to know if I can change my laptop CD writer in DVD writer super multi. even instead of Toshiba I searched for a long time on this subject, but I don't have a specific answer, and so I decided to ask my manufa

  • Unlock HP ProBook 4440 s

    I did an update on my ProBook s 4440 and after I he has put a lock on my laptop code. I can't seem to enter a plus! HELPPP!

  • capture data using writing to the file position encoder

    Hello dear Sir can anyone help to check with my encoder to measure data?I connect the writing to the file of the measurement, but when I open the .txt file,.no result is, thank you very much for your help

  • Shaw and my new Linksys WRT310N router

    Basically, I tried a router Dlink $ 50 and failed. I tried a $ 100 Linksys router and failed. My ISP is Shaw and no 3rd party router seems to work with it. I have connected my Shaw Surfboard Cable Modem to the Internet port on my router and router co

  • Dell 8 venue

    Since the upgrade a lot on my app icons disappear each time that I reboot and I need to add. Some of the games I downloaded said they need Flash 10 or higher. When I try to download it, they say is not available on this device. This will be added lat