Restrict access to rows in tables using S_TABU_LIN

Hello
Is it possible to use this authorization object to restrict access to rows in data tables, based on role?
Namely, a query is created for table holding financial documents data, and I would like users in charge of one company code, to only be able to see rows relating to that company code when they execute the query.
I have defined and activated an organization criteria, and included it in the role authorization data restricted to only one company code value, but the user is still able to see all rows in the table.
The system trace doesn't show a check for the S_TABU_LIN Object while the user is executing the query.
Can anyone tell me what I'm missing?
Thanks in advance
A.

If you activate S_TABU_LIN, whenever that org criterion is hit with table data being retrieved then the check will be performed.  If it is a standard SAP table field then that could potentially become problematic depending how you set it up.
By extending the security in the infoset query you are turning the query from a quick and dirty tool to extract data into something that you can control as you would a bespoke report.  Once your dev team have worked out what they need to do, you can apply the standard auth concept to queries with relative ease and without impacting other parts of your security.
Another thing to mention is that if your developers use logical databases to retrieve query data then there is usually auth checks incorporated in there (which don't show up in SU53 or ST01).

Similar Messages

  • Form Personalization - Restrict access to one lookup table

    Need to pose this to the experts. I need to see if through a form personalization i can restrict access to certain lookup tables that a responsibility has access to. So responsibility 'XXHR' can only see and update lookup tables 'XXHR_A' and lookup table 'XXHR_B' and not be able to see or update any other table.
    Thanks in advance for your support
    Steve

    Forms Personalization is a feature of the Oracle Enterprise Business Suite (EBS) not a feature of Oracle Forms. Please post EBS related questions in the appropriate EBS Forum. If you have a general Forms question, then this is the appropriate forum.
    Craig...

  • Restrict number of rows in table view

    Can a table view has only as many rows as the actual rows in the underlying data structure. Actually, I have a table view with less than 5 rows, but the tableview shows like 15+ rows with the rest of the rows as blank(alternative colors for each empty rows). I know there is a style which can be applied to make the remaining empty rows show with white background. However, the height of the table view doesn't reduce to show only the actual number of rows. Is there a way we can restrict the height of the table view to the height of actual rows it has?
    Thanks.

    Hi. Add a listener to your data. Use prefheight to restrict the table height:
            table.setPrefHeight(data.size() * 25 + 25);  
            data.addListener(new ListChangeListener<Person> ()  {
                public void onChanged(ListChangeListener.Change<? extends Person> c) {
                   table.setPrefHeight(data.size() * 25 + 25);
            });It works only when data.size() * 25 + 25 < scene.height

  • How to restrict no of rows in table

    Hi,
    I want to restrict no of rows displayed in adf-read-only table to 10.I set rangeSize to 10 in jsp but it is not working.How can I restrict no of rows.
    Regards,
    Ramesh

    Hi,
    this sets the range size. Because ADF Faces Rich Client support scrolling the data will be fetched in ranges of 10. I suggest to filter the records within the query and always return 10 rows only. Its a strange usecase you are after.
    Frank

  • Update multiple rows in table using ODataModel.

    I have tied ODataModel with table using "TwoWay" binding. I need to allow user to edit the rows of the table at the bottom of which I have 'Save' button. Currently though the table is editable I am unable to edit the entries in multiple rows of the table.
    Please find my code below:
    var oTable = new sap.ui.table.Table("dprTable",{
      visibleRowCount: 4,
      visible: true,
      navigationMode: sap.ui.table.NavigationMode.Paginator
      var oColumn = new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "DBR/DPR"}),
      template: new sap.m.Link({
      "target": "_blank",
      press:[controller.onClickDemoNo,controller]
      }).bindProperty("text","DemoId"),
      width: "auto",
      tooltip: "DBR/DPR"
      oTable.addColumn(oColumn);
      oTable.addColumn(new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "Description"}),
      template: new sap.ui.commons.TextView().bindProperty("text", "DemoDesc"),
      width: "auto",
      tooltip: "Description"
      oTable.addColumn(new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "Required Date"}),
      template: new sap.ui.commons.DatePicker("",{
      value:{
      path:"ReqDate",
      type: new sap.ui.model.type.Date({pattern: "dd-MM-yyyy"})
      change: function(){
      console.log('the date is changed and it\'s value is'+value);
      width: "auto",
      tooltip: "Required Date"
      oTable.addColumn(new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "Requestor"}),
      template: new sap.ui.commons.TextView().bindProperty("text", "RequestorName"),
      width: "auto",
      tooltip: "Requestor"
      oTable.addColumn(new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "Requestor/Project Lead"}),
      template: new sap.ui.commons.TextView().bindProperty("text", "LeadName"),
      width: "auto",
      tooltip: "Requestor/Project Lead"
      oTable.addColumn(new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "Solution"}),
      template: new sap.ui.commons.TextView().bindProperty("text", "SolutionText"),
      width: "auto",
      tooltip: "Solution"
      oTable.addColumn(new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "Start Date"}),
      template: new sap.ui.commons.DatePicker("",{
      value:{
      path:"StartDate",
      type: new sap.ui.model.type.Date({pattern: "dd-MM-yyyy"})
      width: "auto",
      tooltip: "Start Date"
      oTable.addColumn(new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "End Date"}),
      template: new sap.ui.commons.DatePicker("",{
      value:{
      path:"StartDate",
      type: new sap.ui.model.type.Date({pattern: "dd-MM-yyyy"})
      width: "auto",
      tooltip: "End Date"
      oTable.addColumn(new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "Estimated Duration"}),
      template: new sap.ui.commons.TextView().bindProperty("text", "EstDuration"),
      width: "auto",
      tooltip: "Estimated Duration"
      oTable.addColumn(new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "Hours"}),
      template: new sap.m.Input("",{}).bindProperty("value", "ActDuration"),
      width: "auto",
      tooltip: "Hours"
      oTable.addColumn(new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "Status"}),
      template: new sap.ui.commons.ComboBox({items: [
      new sap.ui.core.ListItem({text: "New",key:"1"}),
      new sap.ui.core.ListItem({text: "In Process",key:"2"}),
      new sap.ui.core.ListItem({text: "Completed",key:"3"})
      ]}).bindProperty("value","StatusText"),
      width: "auto",
      tooltip: "Status"
      oTable.setBusyIndicatorDelay(1);
      //oData service call
      var oModel = new sap.ui.model.odata.ODataModel("/sap/opu/odata/sap/ZSECENTRAL_SRV",true);
      oModel.setDefaultBindingMode("TwoWay");
      oModel.attachRequestSent(function (oEvent) {
      console.log('request sent');
      oTable.setBusy(true);
      oModel.attachRequestCompleted(function () {
      console.log('request completed');
      oTable.setBusy(false);
      });os
      oModel.attachRequestFailed(function () {
      oTable.setBusy(false);
      oTable.setModel(oModel);
      oTable.bindRows("/DEOPENDBRSet");
    Is there something pending in the settings? And to update the multiple records in the table do I have to make use of some batch operations? Any help would be appreciated.
    Thanks,
    Supriya Kale

    Hi Supriya,
    your code is missing call of oModel.submitChanges() when Save button is called.
    You can find the example here SAPUI5 SDK - Demo Kit
    Regards,
    Peter

  • How to select multiple row of table using check box?

    hi,
             i am having table on view having first field as checkbox. what i want, when i click on checkboxes in multiple rows, and i click on any button i need to use those content to next view...
              my problem is if i select only one row , i can use onlead select property of table..but when i select multiple rows  through check box how should i read contents of table....?
    Plz solve it.
    Thanks,
    Saurin Shah

    Hello Saurin,
    You are right using LeadSelection you can select only 1 row at a time. You will have to make use of Selection for achieving this. First you will have to change the selection mode of the table to multiple & also change the selection property for the related context to 0..n . Please find a code extract which might help you. (However this facility is only available from SP 14.) The main part is using the set_selected method of if_wd_context_node.
    data: node_zcourse_details type ref to if_wd_context_node,
             node_course_assign type ref to if_wd_context_node,
             elem_course_assign type ref to if_wd_context_element,
             stru_course_assign type if_v_details=>element_course_assign ,
             item_popin_selected like stru_course_assign-popin_selected.
    "     navigate from <CONTEXT> to <ZCOURSE_DETAILS> via lead selection
    node_zcourse_details = wd_context->get_child_node( name = if_v_details=>wdctx_zcourse_details ).
    "     navigate from <ZCOURSE_DETAILS> to <COURSE_ASSIGN> via lead selection
    node_course_assign = node_zcourse_details->get_child_node( name = if_v_details=>wdctx_course_assign ).
    "     @TODO handle not set lead selection
    if ( node_course_assign is initial ).
    exit.
    endif.
    data elem_set type wdr_context_element_set.
    field-symbols <wa_elem> like line of elem_set.
    elem_set = node_course_assign->get_elements( ).
    loop at elem_set assigning <wa_elem>.
       <wa_elem>->set_selected( TRUE OR FALSE ). " Supply either TRUE/FALSE in here
    endloop.

  • How to restrict only one row in Table ??.

    Hi all,
    i want to restrict no. of rows to one,
    that is not more that one row should be there in the table.
    Following trigger works well in all conditions
    except:
    insert into myTab select 'x' from emp;
    inserts 14 rows.
    Create or replace trigger one_row_myTab
    before insert on myTab
    for each row
    declare
    cnt number;
    pragma AUTONOMOUS_TRANSACTION;
    Begin
    select count(*) into cnt from mydual;
    if cnt=1 then
    raise_application_error(-20001,'MyDual Can have only one Row');
    end if;
    end;
    i think with trigger it w't be possible because,
    same transaction triggers c't query the table (Mutating Table),
    Autonomus trans ca't identify uncommited changes.
    pls add your suggestions.
    Thanks for Reading the Post.
    Rajashekhar Ganga,
    mail : [email protected]

    nice try Mulder ! it doesn't work everywhere...
    SQL> connect scott/tiger@lsc69
    Connected to:
    Oracle7 Server Release 7.3.4.5.0 - Production
    With the distributed and parallel query options
    PL/SQL Release 2.3.4.5.0 - Production
    SQL>  create table d as select * from dual;
    Table created.
    SQL> create index i on d(1);         
    create index i on d(1)
    ERROR at line 1:
    ORA-00904: invalid column name
    SQL> connect scott/tiger@lsc65
    Connected to:
    Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production
    JServer Release 8.1.7.4.0 - 64bit Production
    SQL> create table d as select * from dual;
    Table created.
    SQL> create index i on d(1);         
    Index created.
    SQL> connect scott/tiger@lsc68
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bit Production
    With the Partitioning and Data Mining options
    SQL> create table d as select * from dual
    Table created.
    SQL> CREATE UNIQUE INDEX i on d(1);                  
    CREATE UNIQUE INDEX i on d(1)
    ERROR at line 1:
    ORA-03113: end-of-file on communication channel

  • Restricting Access only for APPS account using SQLNET

    Dear Friends,
    Recently we have an incident that a functional consultant has cracked the Apps password. I don't know how.
    Now what we are planning is to restrict the database access to only the dba team using sqlnet.ora file and its tcp.validnode_checking parameter.
    However, the problem is that we want to continue the APPSRO(which is an Apps Read Only Account) access to them.
    Is there any way possible to restrict access only for a particular database user account using sqlnet.ora
    please help.
    Thanks.

    Recently we have an incident that a functional consultant has cracked the Apps password. I don't know how.
    Now what we are planning is to restrict the database access to only the dba team using sqlnet.ora file and its tcp.validnode_checking parameter.
    However, the problem is that we want to continue the APPSRO(which is an Apps Read Only Account) access to them.
    Is there any way possible to restrict access only for a particular database user account using sqlnet.ora
    Now what we are planning is to restrict the database access to only the dba team using sqlnet.ora file and its tcp.validnode_checking parameter.
    However, the problem is that we want to continue the APPSRO(which is an Apps Read Only Account) access to them.
    Is there any way possible to restrict access only for a particular database user account using sqlnet.oraNo (and even if it exists, I believe this does not fix the main issue with the apps password which could be cracked again).
    The proper way would be changing the apps password and meet the security requirements in these docs.
    Secure Configuration Guide for Oracle E-Business Suite 11i [ID 189367.1]
    Secure Configuration Guide for Oracle E-Business Suite Release 12 [ID 403537.1]
    FNDCPASS Utility New Feature: Enhance Security With Non-Reversible Hash Password [ID 457166.1
    Thanks,
    Hussein                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to capture index/row no of row in table using object oriented alv.

    i have a table with many fields. i have an alv grid table displayed using object oriented alv. when i double click on a record, i call another screen. there i want to display the record number. eg, if i doubleclick on the third row, i will go to next screen and display 3 there.
    please let me know how it is done as it is urgent.
    thanks in advance.

    Hi,
    Use the following code to get rowno.
    CLASS lcl_grid_events DEFINITION DEFERRED.
    DATA:
      grid1_events      TYPE REF TO lcl_grid_events.
    CLASS lcl_grid_events DEFINITION.
      PUBLIC SECTION.
        METHODS:
          dbclk
           FOR EVENT double_click  OF cl_gui_alv_grid
           IMPORTING e_row
                     e_column
                     es_row_no.
    ENDCLASS.                    "lcl_grid_events DEFINITION
    CLASS lcl_grid_events IMPLEMENTATION.
      METHOD dbclk.
    *access e_row variable, which contains the record no.
      ENDMETHOD.                    "dbclk
    ENDCLASS.                    "lcl_grid
    write the following code after method call of set_table_for_first_display
        CREATE OBJECT grid1_events.
        SET HANDLER grid1_events->dbclk
                    FOR grid1.
    reward point if useful.

  • How to store array of data into a single row of  table ,using any of Stmts

    HI Friends,
    Based on my requirements ,i have retrived a set of data from a XXX.jsp page using a request.getParameter() and stored into single dimenssional array . Now i am paassing that array to JAVA class to store a into some table .
    In JSP page users can add text boxes dynamically based on his intrest then those attributes will store in table .it means table attributes are not conatant , it table attributes may change at any time when user adds any textboxs or any fields on JSP page ....thats my module ..
    Now i wanted to store all array of data into Table in a single row .......thats is my requirements .
    How can we use prepareStatement and Statement to store array of results intoo table row ...on each iteration i wanted to store array of results into table atributes ..It means entire array of results should to into table row at time .....coule any one write sytax ,how we do this...
    could any one suggest me stps that i can impliment ......?....please reply ASAP

    Well ..you code can be works for constant number of attributes in table .oopss here my requirement is table attributes not fixed ,we cant put constant number of place holder(? ) in a statement ,because those are not fixed ,
    Let me explain here :
    i am doing in that way only. As i mentioned you Table attributes are not constant .It may very if users add any fields dynamically on JSP page .If users have option to add any text box on Jsp page ,then that attribute will store in table as a attribute .
    Now i amable fetching the all dyamic form data and stored in a Result Array below ...in this iteration all form result data are from jsp page as suggestion form ,it should stored in table in single row on corrsponding attribtes ......next time when users fills FROM ,then those data i am fetching and storing in a Result Array as below and need to store in corrsponding table attributes in a single row ....
    for(int i=0;i<result.length;i++)
                   System.out.println(result);
                   pst3=connection.prepareStatement("insert into *emprecord* values(?)");
                   if(!result[i].equals(""))
                        System.out.println(result[i]);
                             pst3.setString(1,result[i]);
                             pst3.executeUpdate();
    Thnks in advance ....let me know the the way we can store dynamic form data into dyanamic table ...

  • How to insert one blank row in table using ODataModel?

    Hi,
    I have a table in which the data is being shown using ODataModel. Now I want to add a new row dynamically when user clicks on 'New' button. For this I know using JsonModel it would be something like below where every field in the table is almost  blank as I want users to enter the data in it and later I want to save the data in the model at server:
    var tableModel = table.getModel();
      var tableData = timeSheetTable.getModel().getData();
      tableData.modelData.push({"workItem":"item5","day1":"","day2":"","day3":"","day4":"","day5":"","day6":"","day7":""});
       tableModel.setData(tableData);
      timeSheetTable.setModel(tableModel);
    How this thing can be achieved using ODataModel? I can't push data like what is shown above.
    I tried searching examples for this but no luck. Any help would appreciated.
    Thanks,
    Supriya Kale

    Hi,
    I have a table in which the data is being shown using ODataModel. Now I want to add a new row dynamically when user clicks on 'New' button. For this I know using JsonModel it would be something like below where every field in the table is almost  blank as I want users to enter the data in it and later I want to save the data in the model at server:
    var tableModel = table.getModel();
      var tableData = timeSheetTable.getModel().getData();
      tableData.modelData.push({"workItem":"item5","day1":"","day2":"","day3":"","day4":"","day5":"","day6":"","day7":""});
       tableModel.setData(tableData);
      timeSheetTable.setModel(tableModel);
    How this thing can be achieved using ODataModel? I can't push data like what is shown above.
    I tried searching examples for this but no luck. Any help would appreciated.
    Thanks,
    Supriya Kale

  • Creating views in a new schema to access certain rows of tables in source schema

    Hi,
    Oracle 10.2.0.4
    We are trying to mask certain data from some users. My suggestion is that we create a new schema view_schema on the same instance where we have source tables say in source_schema.
    We then create views in view_schema as below
    CREATE VIEW AS SELECT * FROM source_schema.table where COLUMN_n = 'XYZ';
    we then grant SELECT on these views to a role and assign new users that role to be able to see the viewed data.
    So the questions below.
    We can create views to look at data in another schema WITHOUT giving SELECT permissions directluy on source_schema.tanle?
    This will work and there is no need to create synonyms etc
    WE can manage users and views much easilier
    Does this make sense and would that be better than selecting views with say table_name_view in source schema for this purpose and even creating synonyms for these views with the same tanle names in sourece_schema?
    Thanks

    905989 wrote:
    Hi,
    Oracle 10.2.0.4
    We are trying to mask certain data from some users. My suggestion is that we create a new schema view_schema on the same instance where we have source tables say in source_schema.
    We then create views in view_schema as below
    CREATE VIEW AS SELECT * FROM source_schema.table where COLUMN_n = 'XYZ';
    we then grant SELECT on these views to a role and assign new users that role to be able to see the viewed data.
    So the questions below.
    We can create views to look at data in another schema WITHOUT giving SELECT permissions directluy on source_schema.tanle?
    This will work and there is no need to create synonyms etc
    WE can manage users and views much easilier
    Does this make sense and would that be better than selecting views with say table_name_view in source schema for this purpose and even creating synonyms for these views with the same tanle names in sourece_schema?
    Thanks
    1. You can create the view in another schema (first granting privileges to the view schema) without granting privileges from the source schema
    2. You probably want to create public synonyms for the view(s).  You can refer to the view as schema.view but this is cumbersome
    3. I am not sure about management being easier but added complexity should not be too bad.  Write documentation describing how everything works and the object involved.
    Another, more complicated but more powerful possibility is to use row level security also known as virtual private database - if you have the license.  You create a profile for a table and a procedure to generate WHERE clauses to filter any query against the table and columns defined in the profile.  Again, you need the license to do this.

  • Hotmail style - select rows in table  (using checkboxes)

    Hi!
    I have a table that is bound to a CachedRowSet.
    Each row in the table has a checkbox. You check each of the row you want to delete, and the click a "delete" button bellow the the table. And the checked rows will be deleted!
    If it is possible, it should also work with paging.
    How do I implement this?
    I still find it hard to understand the JSF way of handling submits, I am use to the old request/response way of do this.
    Regards, Niels Peter

    Hi Niels,
    It is not clear if you are using Sun Java Studio Creator to build your webapplication using JSF. If you are then a sample application called AppModel demonstrates exactly what you are looking for. This is available at:
    http://developers.sun.com/prodtech/javatools/jscreator/reference/codesamples/sampleapps.html
    In case you are not using Creator then you would have to post your query in the appropriate forum as this forum is exclusively for discussions related to Creator.
    Going through the AppModel sample application might still give you an idea if you can download the IDE and run this application.
    Hope this helps
    Cheers
    Giri

  • Adding new rows to table - using TableRowSorter & RowFilter

    Hi all,
    I have a table where the user can add new rows by selecting a JButton. I have added a text box which allows the user to search for a String value and this filters the table contents and this is all working fine...But when I go to add a new row I get the following exception:
    java.lang.IndexOutOfBoundsException: Invalid range which seems to originate from DefaultRowSorter.rowsInsertedCould someone please give me any ideas to why this is happening, maybe the number of rows that are in the table orginally is set to x and when I add a new row the TableRowSorter is expecting that number not x + 1 which is added due to the button being pressed?
    Seems like I need to update the TableRowSorter to inform it that a new row has been added or something similar to that,
    Thanks,

    If you need further help then you need to create a [Short, Self Contained, Compilable and Executable, Example Program (SSCCE)|http://homepage1.nifty.com/algafield/sscce.html], that demonstrates the incorrect behaviour.
    Don't forget to use the Code Formatting Tags so the posted code retains its original formatting. That is done by selecting the code and then clicking on the "Code" button above the question input area.

  • Trouble updating multiple rows in table using subquery

    Hi everyone, I'm having trouble updating multiple rows with a subquery. Here's the setup:
    create table mytable (
    col_a number primary key,
    col_b number,
    col_c number,
    col_d number);
    insert into mytable values (1 ,1,1,15);
    insert into mytable values (2 ,1,2,7 );
    insert into mytable values (3 ,1,3,11);
    insert into mytable values (4 ,1,4,23);
    insert into mytable values (5 ,1,5,14);
    insert into mytable values (6 ,2,1,50);
    insert into mytable values (7 ,2,2,41);
    insert into mytable values (8 ,2,3,13);
    insert into mytable values (9 ,2,4,12);
    insert into mytable values (10,2,5,19);
    insert into mytable values (11,3,1,10);
    insert into mytable values (12,3,2,92);
    insert into mytable values (13,3,3,81);
    insert into mytable values (14,3,4,17);
    insert into mytable values (15,3,5,66);
    insert into mytable values (16,4,1,54);
    insert into mytable values (17,4,2,41);
    insert into mytable values (18,4,3,22);
    insert into mytable values (19,4,4,24);
    insert into mytable values (20,4,5,17);For this example, using an update statement (or merge if that's better), say I want to set the values for col_d where col_b = 3 equal to the values for col_d where col_b = 1 and col_c equal each other. Results should look like the following after the update:
    col_a col_b col_c col_d
    1     1     1     15
    2     1     2     7
    3     1     3     11
    4     1     4     23
    5     1     5     14
    6     2     1     50
    7     2     2     41
    8     2     3     13
    9     2     4     12
    10    2     5     19
    11    3     1     15
    12    3     2     7
    13    3     3     11
    14    3     4     23
    15    3     5     14
    16    4     1     54
    17    4     2     41
    18    4     3     22
    19    4     4     24
    20    4     5     17I can see it right there at my fingertips using this query, where I want to set b_col_d = a_col_d, but I'm missing something, as this query returns too many rows when used in the update statement.
    select * from (
      select col_a as a_col_a, col_b as a_col_b, col_c as a_col_c, col_d as a_col_d
      from mytable
      where col_b = 1
      ) a, (
      select col_a as b_col_a, col_b as b_col_b, col_c as b_col_c, col_d as b_col_d
      from mytable
      where col_b = 3
      ) b
    where a.a_col_c = b.b_col_cupdate mytable set column_d = (select ??? where exists ???)
    Can someone help me get there? I'm using 10GR2.
    Thanks!
    Mark

    Hopefully this is what you are looking for:
    SQL > UPDATE mytable myt1
      2  SET    col_d = ( SELECT myt2.col_d
      3                   FROM   mytable myt2
      4                   WHERE  myt2.col_b = 1
      5                   AND    myt1.col_c = myt2.col_c
      6                 )
      7  WHERE  col_b = 3
      8  AND    EXISTS
      9         ( SELECT NULL
    10           FROM   mytable myt2
    11           WHERE  myt2.col_c = myt1.col_c
    12         )
    13  ;
    5 rows updated.
    SQL > SELECT * FROM mytable ORDER BY col_a;
                   COL_A                COL_B                COL_C                COL_D
                       1                    1                    1                   15
                       2                    1                    2                    7
                       3                    1                    3                   11
                       4                    1                    4                   23
                       5                    1                    5                   14
                       6                    2                    1                   50
                       7                    2                    2                   41
                       8                    2                    3                   13
                       9                    2                    4                   12
                      10                    2                    5                   19
                      11                    3                    1                   15
                      12                    3                    2                    7
                      13                    3                    3                   11
                      14                    3                    4                   23
                      15                    3                    5                   14
                      16                    4                    1                   54
                      17                    4                    2                   41
                      18                    4                    3                   22
                      19                    4                    4                   24
                      20                    4                    5                   17
    20 rows selected.Thank you so much for providing the sample data in an easy to consume form, as well as the expected output.

Maybe you are looking for