Set fixed key column position

Hi together,
I am using class CL_SALV_TABLE for displaying ALV outputs.
I´ve defined several key-columns (method 'set_key') and use method 'set_key_fixation' .
Since 'set_key_fixation' apparently only works when (at least) one key column is beeing display
as the first column (position 1 of the ALV output table) I want to freeze the postion of the key column
(...so that you can´t remove the column or move the column to another position)
Any idea?
Thanks vor any help

Hi,
This is probably another issue with SALV class... You could still grab a cl_gui_alv_grid object from your salv adapter and play with methods from this class (e.g. SET_FIXED_COLS)
have a look to this blog: Power of ABAP Objects: Overcome the Restrictions of SALV Model
Here we bypass the restrictions of the SALV model to enable the editable functionnality... guess you could work similarily for your issue...
Kr,
Manu.

Similar Messages

  • Can I make auto layout of Matrix Chart after setting fixed rows/columns ?

    Can I make auto layout of Matrix Chart after setting fixed rows/columns ?
    I want to make Matrix Chart to auto layout to zooming out a chart of filter.
    Matrix Chart's layout is AUTO layout at creating.
    Matrix Chart layout can fix specfic rows / columns from layout toolbar.
    BUT fixed layout's Matrix Chart does not zoom a chart of filter.
    Regards,
    Yoshihiro Kawabata
     

    Hi Yoshihiro - at the moment if a specific number of row/columns has been set for small multiples the chart will maintain these proportions even after filtering.
    If the chart hasn't had a set row/column dimensions set it will automatically be re-laid out when filtered however.

  • ALV set row and column position

    Hi Experts,
    I have editable ALV, after edit I refresh ALV, but problem is, that position is set to position 1.1. I need to keep cursor at edited position.
    I use ALV through function module REUSE_ALV_GRID_DISPLAY.
    Thansk&regards,
    Jirka

    In order to refresh the ALV and keep the scroll position, you have to read the scroll posiition before refresh and set the scroll position after the refresh..
    Below code will help,.. Whenever you want to refresh the alv use these in your coding...
    FORM refresh_alv_display.
    DATA: li_rows    TYPE lvc_s_roid,
             li_col     TYPE lvc_s_col,
             lws_row_id TYPE lvc_s_roid,
             lws_col_id TYPE lvc_s_col,
             ls_col     TYPE lvc_s_col,
             ls_num     TYPE lvc_s_roid.
       CALL METHOD c_grid->get_current_cell
         IMPORTING
           es_col_id = li_col
           es_row_no = li_rows.
       CALL METHOD c_grid->get_scroll_info_via_id
         IMPORTING
           es_col_info = ls_col
           es_row_no   = ls_num.
       CALL METHOD c_grid->refresh_table_display.
       CALL METHOD c_grid->set_scroll_info_via_id
         EXPORTING
           is_col_info = ls_col
           is_row_no   = ls_num.
       lws_row_id-row_id    = li_rows-row_id.
       lws_col_id-fieldname = li_col-fieldname.
       CALL METHOD c_grid->set_current_cell_via_id
         EXPORTING
           is_column_id = lws_col_id
           is_row_no    = lws_row_id.
    ENDFORM.

  • Fix column position

    Hi All,
    I am using a simple Web Dynpro Table UI Element and I am dying trying to fix the column position. The user must not be able to reorder the columns.
    I have seen the other threads about this topic! However, none of the answers actually worked (I have tried "fixedPositon" of the Column and the WD..PERSONALIZATION.. Property in the Application).
    Does anybody have a working solution for this issue??
    THANKS, JOHANNES

    Hello,
    I think end user can control the column position of a table UI element only via user personalization.
    SO If you disable the end user personalization for your application you can stop that.
    How your users changing the column position can you please explain if the above solution is not working.
    Cheers!
    Pradeep

  • No Primary Key Column set. error

    Hi all,
    Firstly, thank you to DWFAQ for advice a tutorials.
    Secondly, I have built a contact form using the update record
    form wizard in ADDT -
    http://dwfaq.info/home.php?id=4
    I have hit a problem, when running the form I get the
    following error:
    Error:
    Internal error.
    Developer Details:
    tNG_update.prepareSQL:
    No Primary Key Column was set. (UPD_NO_PK_SET)
    tNG Execution Trace - VIEW
    * tNG_update.executeTransaction
    o STARTER.Trigger_Default_Starter
    o tNG_update.doTransaction
    + BEFORE.Trigger_Default_saveData
    # tNG_update.saveData
    + BEFORE.Trigger_Default_FormValidation
    + tNG_update.prepareSQL*
    o tNG_update.getRecordset
    o tNG_update.getFakeRsArr
    o tNG_update.getLocalRecordset
    o tNG_update.getFakeRecordset
    Could somebody please help - I'm so close it hurts ;-)
    Thank you
    NJ

    Heya,
    Looks like your DB is all setup correctly it must be the
    primary key in the transaction of the script.
    Make sure id is set as the primary key in your Update Record
    Form Wizard. You php code should look something like this:
    // Add columns
    $upd_contact->setTable("cvform");
    $upd_contact->addColumn("firstname", "STRING_TYPE",
    "POST", "firstname");
    $upd_contact->addColumn("lastname", "STRING_TYPE", "POST",
    "lastname");
    $upd_contact->addColumn("email", "STRING_TYPE", "POST",
    "email");
    $upd_contact->addColumn("message", "STRING_TYPE", "POST",
    "message");
    $upd_contact->addColumn("attachment", "FILE_TYPE",
    "FILES", "attachment");
    $upd_contact->addColumn("phonenumber", "STRING_TYPE",
    "POST", "phonenumber");
    $upd_contact->setPrimaryKey("id", "NUMERIC_TYPE", "VALUE",
    "id");
    // Execute all the registered transactions
    $tNGs->executeTransactions();
    You may have to post your script to see what the problem is.
    Most likely something not followed correctly in the tutorial. If
    you are able to post your php script as a text file then link to
    the file here with .txt extension I can take a look at it and see
    where the problem is. Make sure to remove any info that may
    compromise your database when providing your php script or contact
    me through my website and I can help you out off the forum.
    Hope that helps!

  • How to set primary key for a date column

    hello experts .,
    i need to set primary key for a column consists of the datatype date. how to solve this..?

    1008318 wrote:
    its my personal need..then it is a very bad personal need. DATE is not an appropriate type to be using for a primary key, as it cannot be guaranteed to be unique, especially when inserting multiple rows at once.
    You would be better working to business needs and implementing correct technical solutions to those needs, than to just do things based on your personal needs.

  • No Primary Key Column was set. (UPD_NO_PK_SET)

    I'm trying to build an update record page that gets the primary key value passed from a dynamic edit selection. dynamic list is great..opens up to the update record page great...values filled in including the primary key...i can see the primary key value listed in the URL...but then i hit submit and I get:
    No Primary Key Column was set. (UPD_NO_PK_SET)
    I have seen this error posted a lot, but no concise solution..been working on this for days...Please please help..! i'm desperate!

    Ok, I'm confused....with
    <br />
    <br />// Load the KT_back class
    <br />require_once('includes/nxt/KT_back.php');
    <br />
    <br />removed all works great...the delete, the insert. When I do any of those desired functions, I do get back to the dynamic list page..however, I chose to edit say record 12 ..with only 10 showing per page so i'm on the second page...if i cancel..i jump back to record page one...Is that the functionality I'm losing?
    <br />
    <br />hope you dont mind, but I am trying to post the code?
    <br />
    <br />code for statuslist page:
    <br />
    <br /><?php require_once('Connections/PatientDB.php'); ?>
    <br /><?php<br />// Load the common classes<br />require_once('includes/common/KT_common.php');<br /><br />// Load the required classes<br />require_once('includes/tfi/TFI.php');<br />require_once('includes/tso/TSO.php');<br />require_once('includes/nav/NAV.php');<br /><br />// Make unified connection variable<br />$conn_PatientDB = new KT_connection($PatientDB, $database_PatientDB);<br /><br />if (!function_exists("GetSQLValueString")) {<br />function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") <br />{<br />  if (PHP_VERSION < 6) {<br />    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;<br />  }<br /><br />  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);<br /><br />  switch ($theType) {<br />    case "text":<br />      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";<br />      break;    <br />    case "long":<br />    case "int":<br />      $theValue = ($theValue != "") ? intval($theValue) : "NULL";<br />      break;<br />    case "double":<br />      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";<br />      break;<br />    case "date":<br />      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";<br />      break;<br />    case "defined":<br />      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;<br />      break;<br />  }<br />  return $theValue;<br />}<br />}<br /><br />// Filter<br />$tfi_listRecordset1 = new TFI_TableFilter($conn_PatientDB, "tfi_listRecordset1");<br />$tfi_listRecordset1->addColumn("status", "STRING_TYPE", "status", "%");<br />$tfi_listRecordset1->Execute();<br /><br />// Sorter<br />$tso_listRecordset1 = new TSO_TableSorter("Recordset1", "tso_listRecordset1");<br />$tso_listRecordset1->addColumn("status");<br />$tso_listRecordset1->setDefault("status");<br />$tso_listRecordset1->Execute();<br /><br />// Navigation<br />$nav_listRecordset1 = new NAV_Regular("nav_listRecordset1", "Recordset1", "", $_SERVER['PHP_SELF'], 10);<br /><br />//NeXTenesio3 Special List Recordset<br />$maxRows_Recordset1 = $_SESSION['max_rows_nav_listRecordset1'];<br />$pageNum_Recordset1 = 0;<br />if (isset($_GET['pageNum_Recordset1'])) {<br />  $pageNum_Recordset1 = $_GET['pageNum_Recordset1'];<br />}<br />$startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;<br /><br />// Defining List Recordset variable<br />$NXTFilter_Recordset1 = "1=1";<br />if (isset($_SESSION['filter_tfi_listRecordset1'])) {<br />  $NXTFilter_Recordset1 = $_SESSION['filter_tfi_listRecordset1'];<br />}<br />// Defining List Recordset variable<br />$NXTSort_Recordset1 = "status";<br />if (isset($_SESSION['sorter_tso_listRecordset1'])) {<br />  $NXTSort_Recordset1 = $_SESSION['sorter_tso_listRecordset1'];<br />}<br />mysql_select_db($database_PatientDB, $PatientDB);<br /><br />$query_Recordset1 = "SELECT * FROM status_listEG WHERE  {$NXTFilter_Recordset1}  ORDER BY  {$NXTSort_Recordset1} ";<br />$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);<br />$Recordset1 = mysql_query($query_limit_Recordset1, $PatientDB) or die(mysql_error());<br />$row_Recordset1 = mysql_fetch_assoc($Recordset1);<br /><br />if (isset($_GET['totalRows_Recordset1'])) {<br />  $totalRows_Recordset1 = $_GET['totalRows_Recordset1'];<br />} else {<br />  $all_Recordset1 = mysql_query($query_Recordset1);<br />  $totalRows_Recordset1 = mysql_num_rows($all_Recordset1);<br />}<br />$totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;<br />//End NeXTenesio3 Special List Recordset<br /><br />$nav_listRecordset1->checkBoundries();<br />?>
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <script src="includes/common/js/base.js" type="text/javascript"></script>
    <br />
    <script src="includes/common/js/utility.js" type="text/javascript"></script>
    <br />
    <script src="includes/skins/style.js" type="text/javascript"></script>
    <br />
    <script src="includes/nxt/scripts/list.js" type="text/javascript"></script>
    <br />
    <script src="includes/nxt/scripts/list.js.php" type="text/javascript"></script>
    <br />
    <script type="text/javascript"></script>$NXT_LIST_SETTINGS = {
    <br /> duplicate_buttons: true,
    <br /> duplicate_navigation: true,
    <br /> row_effects: true,
    <br /> show_as_buttons: true,
    <br /> record_counter: true
    <br />}
    <br />
    <br /> /* Dynamic List row settings */
    <br /> .KT_col_status {width:140px; overflow:hidden;}
    <br />
    <br />
    <br />
    <br />
    <br />
    <div class="KT_tng" id="listRecordset1">
    <br />
    <h1>status_listEG
    <br /> <?php<br />  $nav_listRecordset1->Prepare();<br />  require("includes/nav/NAV_Text_Statistics.inc.php");<br />?>
    <br /></h1>
    <br />
    <div class="KT_tnglist">
    <br />
    <form action="%3C?php%20echo%20KT_escapeAttribute(KT_getFullUri());%20?%3E" method="post" id="form1">
    <br />
    <div class="KT_options">
    <a href="%3C?php%20echo%20$nav_listRecordset1-%3EgetShowAllLink();%20?%3E"><?php echo NXT_getResource("Show"); ?>
    <br /> <?php <br />  // Show IF Conditional region1<br />  if (@$_GET['show_all_nav_listRecordset1'] == 1) {<br />?>
    <br /> <?php echo $_SESSION['default_max_rows_nav_listRecordset1']; ?>
    <br /> <?php <br />  // else Conditional region1<br />  } else { ?>
    <br /> <?php echo NXT_getResource("all"); ?>
    <br /> <?php } <br />  // endif Conditional region1<br />?>
    <br /> <?php echo NXT_getResource("records"); ?></a> &#160;
    <br /> &#160;
    <br /> <?php <br />  // Show IF Conditional region2<br />  if (@$_SESSION['has_filter_tfi_listRecordset1'] == 1) {<br />?>
    <br />
    <a href="%3C?php%20echo%20$tfi_listRecordset1-%3EgetResetFilterLink();%20?%3E">
    <?php echo NXT_getResource("Reset filter"); ?>
    </a>
    <br /> <?php <br />  // else Conditional region2<br />  } else { ?>
    <br />
    <a href="%3C?php%20echo%20$tfi_listRecordset1-%3EgetShowFilterLink();%20?%3E">
    <?php echo NXT_getResource("Show filter"); ?>
    </a>
    <br /> <?php } <br />  // endif Conditional region2<br />?>
    <br /></div>
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <table cellpadding="2" cellspacing="0" class="KT_tngtable">
    <thead>
    <tr class="KT_row_order">
    <th>
    <input type="checkbox" name="KT_selAll" id="KT_selAll" />
    <br /></th>
    <th id="status" class="KT_sorter KT_col_status &lt;?php echo $tso_listRecordset1-&gt;getSortIcon('status'); ?&gt;">
    <a href="%3C?php%20echo%20$tso_listRecordset1-%3EgetSortLink('status');%20?%3E">Status</a>
    </th>
    <th>&#160;</th>
    </tr><?php <br />  // Show IF Conditional region3<br />  if (@$_SESSION['has_filter_tfi_listRecordset1'] == 1) {<br />?>
    <tr class="KT_row_filter">
    <td>&#160;</td>
    <td>
    <input type="text" name="tfi_listRecordset1_status" id="tfi_listRecordset1_status" value="<?php echo KT_escapeAttribute(@$_SESSION['tfi_listRecordset1_status']); ?>" size="20" maxlength="20" />
    </td>
    <td>
    <input type="submit" name="tfi_listRecordset1" value="<?php echo NXT_getResource(" />" /&gt;</td>
    </tr><?php } <br />  // endif Conditional region3<br />?>
    </thead>
    <tbody>
    <?php if ($totalRows_Recordset1 == 0) { // Show if recordset empty ?>
    <tr>
    <td colspan="3">
    <?php echo NXT_getResource("The table is empty or the filter you've selected is too restrictive."); ?>
    </td>
    </tr><?php } // Show if recordset empty ?><?php if ($totalRows_Recordset1 > 0) { // Show if recordset not empty ?><?php do { ?>
    <tr class="<?php echo @$cnt1++%2==0 ? "></tr>
    </tbody>
    </table></form></div></div>

  • What is the best practice for inserting (unique) rows into a table containing key columns constraint where source may contain duplicate (already existing) rows?

    My final data table contains a two key columns unique key constraint.  I insert data into this table from a daily capture table (which also contains the two columns that make up the key in the final data table but are not constrained
    (not unique) in the daily capture table).  I don't want to insert rows from daily capture which already exists in final data table (based on the two key columns).  Currently, what I do is to select * into a #temp table from the join
    of daily capture and final data tables on these two key columns.  Then I delete the rows in the daily capture table which match the #temp table.  Then I insert the remaining rows from daily capture into the final data table. 
    Would it be possible to simplify this process by using an Instead Of trigger in the final table and just insert directly from the daily capture table?  How would this look?
    What is the best practice for inserting unique (new) rows and ignoring duplicate rows (rows that already exist in both the daily capture and final data tables) in my particular operation?
    Rich P

    Please follow basic Netiquette and post the DDL we need to answer this. Follow industry and ANSI/ISO standards in your data. You should follow ISO-11179 rules for naming data elements. You should follow ISO-8601 rules for displaying temporal data. We need
    to know the data types, keys and constraints on the table. Avoid dialect in favor of ANSI/ISO Standard SQL. And you need to read and download the PDF for: 
    https://www.simple-talk.com/books/sql-books/119-sql-code-smells/
    >> My final data table contains a two key columns unique key constraint. [unh? one two-column key or two one column keys? Sure wish you posted DDL] I insert data into this table from a daily capture table (which also contains the two columns that make
    up the key in the final data table but are not constrained (not unique) in the daily capture table). <<
    Then the "capture table" is not a table at all! Remember the fist day of your RDBMS class? A table has to have a key.  You need to fix this error. What ETL tool do you use? 
    >> I don't want to insert rows from daily capture which already exists in final data table (based on the two key columns). <<
    MERGE statement; Google it. And do not use temp tables. 
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • How to set FK to column name only, after engineering

    Hi everyone,
    On Logical model I have 2 tables, first one is Clients T085CLI with CODCLI as PK, the second one is Contacts T085CTO with CODCTO as PK and CODCLI as FK. After doing the engineering on T085CTO I get the following names, CODCTO (PK) and T085CLI_CODCLI (FK), but I would like the FK name as CODCLI only, without T085CLI_ prefix. Is there a configuration in somewhere to fix this?
    I do appreciate if someone of you can help me with this.
    Thanks in advance.
    Oracle SQL Developer Data Modeler version 4.0.0.820

    Hi,
    You should be able to do this by setting the template for foreign key columns in your model.
    Go to the Browser, right-click over the entry for your Design and select Properties.
    This will display the Design Properties dialog.  In the tree in the left-hand panel select Settings > Naming Standard > Templates.
    Update the entry for Column Foreign Key to {ref column}
    David

  • Process ADD(increment) using SSIS for a dimension with two Key columns

    Hi,
    I'm trying to add data to the existing dimension using Process ADD increment (SSIS data flow). The dimension has 2 key columns (ID and Timestamp) and when I do a full process for a particular day the dimension run's fine, but when I try
    to add data for the next day using Process Add(increment) from SSIS I'm getting error like   
    And Yes, I will have same ID's of the first day for the next day as well but with a different Timestamp, so for that I have set the
    Key not found  to "Ignore errors". But still I see the above error. Below is my DSV
    Can anyone help me on how to approach on this. 

    Hi K.Kalyan,
    According to your description, you get the above error when executing the ProcessAdd data flow task. Right?
    In this scenario, since you have same ID for one which is differed on Timestamp, it can cause duplicated key issue so that it will throw this error. Please change the "Duplicate Key" error action to "Report and continue"
    (recommended) or "Ignore error" to resolve this issue. 
    Reference:
    Dimension processing failing (Incremental)
    FIX: "Internal error: An unexpected error occurred" when you run a "Process" command against the TFS SSAS cube
    Best Regards, 
    Simon Hou
    TechNet Community Support

  • CDG-01141 ERROR: Module Component Table Usage ...  Table usage ... requires primary key column for referential integrity

    For some strange reason when I modified a form, (commented out some code in a when-window-activated trigger) I now get the following error.
    CDG-01141 ERROR: Module Component Table Usage GR1130A.CUSTOMER.GR_CUSTOMER.GC: Table usage GR_CUSTOMER requires primary key column for referential integrity
    I am sure this is not related to my change, but do not know what may have caused this or how to fix it.
    Anyone seen this error before? been able to fix it?
    Thanks!
    Windows 7
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
    Designer Version 6.5.95.4.8

    You know that Developer/Designer 6i is not certified for Windows 7, right? Also, your version is not the latest one, so you can try to install the latest patch set first.
    >Table usage GR_CUSTOMER requires primary key column for referential integrity
    Check if there is a PK in the table definition (not in the database, but in Designer).

  • BOOLEAN DEFAULT FALSE NOT NULL for key-column

    Hello,
    These statements show an unexpected behavior when a column is added to a table as 'BOOLEAN DEFAULT FALSE NOT NULL' and added afterward to the table's primary key column set:
    create table test_1 (a char(1))
    insert into test_1 values('A')
    alter table test_1 add b boolean default false not null
    alter table test_1 add primary key (a,b)
    create table test_2 (a char(1), b boolean default false not null)
    insert into test_2 (a) values('A')
    alter table test_2 add foreign key f_test_1 (a,b) references test_1 (a,b)
          -> [350]: Referential integrity violated
    update test_1 set b=false
    alter table test_2 add foreign key f_test_1 (a,b) references test_1 (a,b)
          -> success
    delete from test_2
    delete from test_1
    insert into test_1 (a,b) values('A',false)
    insert into test_2 (a) values('A')
          -> success
    I think the error message '[350] Referential integrity violated' should not happen because the column 'b' really contains 'false'. But there obviously seem to be a difference before and after setting the column 'b' explicitly to 'false'. I can imagine that this depends on the way how the index for the primary key is updated. Probably the index is not properly updated in this context(?)
    Gabriel

    Hi Gabriel,
    you're right, this is a bug and indeed seems to caused by the way the DEFAULT boolean is stored in the page.
    (There is no separate index for the primary key in MaxDB as all data is stored in B*trees - basically the table is the primary key).
    This is how the record looks like when column b is 'false' only due to the change of the DEFAULT value:
    ROOT/LEAF 460  perm       entries : 1         [block 0]
         bottom  : 93         filevers: 14888     convvers: 83
                                                  writecnt: 1
      1: (pos 00081)
    00001      recLen      : 12                recKeyLen   : 4
    00005      recVarcolOff: 0                 recVarcolCnt: 0
         record
          1  2  3  4  5  6  7  8  9 10 11 12
         81 82 83 84 85 86 87 88 89 90 91 92
    dec: 12  0  4  0  0  0  0  0 32 65  0  0
    hex: 0C 00 04 00 00 00 00 00 20 41 00 00
    chr:                             A
    And this is how it looks like after the explicit UPDATE:
    ROOT/LEAF 460  perm       entries : 1         [block 0]
         bottom  : 93         filevers: 14888     convvers: 84
                                                  writecnt: 2
      1: (pos 00081)
    00001      recLen      : 11                recKeyLen   : 3
    00005      recVarcolOff: 0                 recVarcolCnt: 0
         record
          1  2  3  4  5  6  7  8  9 10 11
         81 82 83 84 85 86 87 88 89 90 91
    dec: 11  0  3  0  0  0  0  0 32 65  0
    hex: 0B 00 03 00 00 00 00 00 20 41 00
    chr:                             A
    Little difference but this leads to the problems during the foreign key validation.
    I'll inform the developers next week about this.
    As a workaround you'll have to explicitly update the columns for which you change the default setting.
    regards,
    Lars

  • Need to concatonate multiple values for same key columns into one string

    Hi...I'm attempting to use PL/SQL to read through a table containing more than one column value for a set of keys, and concatonate those values together into one string. For example, in the STUDENT table, for a STUDENT_ID there are multiple MAJORS_ACCOMPLISHED such as History, Biology and Mathematics. Each of the majors is stored in a different row with the same STUDENT_ID due to different faculty DEPARTMENT values.
    I want to read through the table and write out a single row for the STUDENT_ID and
    concatonate the values for MAJORS_ACCOMPLISHED. The next row should be another STUDENT_ID and the MAJORS ACCOMPLISHED for that student..etc.
    I've hit a wall trying to use cursors and WHILE loops to get the results I want. I'm hoping someone may have run across this before and have a suggestion. Tks!!

    I think you are looking for string aggregation.
    The following are the replies posted by me in the forum recently on the same case.
    they might help you.
    Re: Concatenating multiple rows in a table - Very urgent - pls help
    Re: Doubt in a query ( Urgent )
    Re: How to remove words which consist of max 2 letters?
    Re: output like Name1,Name2,Name3...

  • Hit the exception when editing the value of row key column in a new created row in a table

    1. I created a view object with 2 entity objects (parent table: YARD_FIXED_SLOT - child table: YARD_FIXED_SLOT_DETAIL) and the primary key of child table composes of 2 columns ( one of them is FK: YardFixedSlotDetail.FIXED_SLOT_ID REFERENCES YARD_FIXED_SLOT(FIXED_SLOT_ID)
    SQL queries:
    SELECT YardFixedSlotDetail.FIXED_SLOT_ID,
           YardFixedSlotDetail.MODIFIED_DT,
           YardFixedSlotDetail.SLOT_FROM_N,
           YardFixedSlotDetail.SLOT_TO_N,
           YardFixedSlotDetail.USER_ID,
           YardFixedSlot.BLOCK_M,
           YardFixedSlot.BLOCK_N,
           YardFixedSlot.FIXED_SLOT_ID AS FIXED_SLOT_ID1,
           YardFixedSlot.SECTION_N,
           YardFixedSlot.STATUS_C,
           YardFixedSlot.TERMINAL_C
    FROM  YARD_FIXED_SLOT_DETAIL YardFixedSlotDetail, YARD_FIXED_SLOT YardFixedSlot
    YardFixedSlotDetail.FIXED_SLOT_ID = YardFixedSlot.FIXED_SLOT_ID
    2. I dragged this view object into JSF page as an ediable table and add 'add' button to add a new row to the table. and the handling logic in managed bean is as followed. now one new row can be added succesfully in the table.
        public void processSlotDetailCreation(ActionEvent ae)
            DCBindingContainer bindings = (DCBindingContainer)getBindings();
            DCIteratorBinding dciter = bindings.findIteratorBinding("YardFixedSlotDetailFindAllByBlock1Iterator");
            Row row = dciter.getCurrentRow();
            //get the last row for the index and create a new row for the //user to edit
            Row lastRow = dciter.getNavigatableRowIterator().last();
            YardFixedSlotDetailFindAllByBlockRowImpl newRow = (YardFixedSlotDetailFindAllByBlockRowImpl)dciter.getNavigatableRowIterator().createRow();
            newRow.setFixedSlotId(new Integer(21));
            newRow.setUserId("adftest");
            newRow.setModifiedDt(new Timestamp(System.currentTimeMillis()));
            //bug exist here
            newRow.setSlotFromN(new Integer(1));
            //newRow.setSlotToN(new Integer(1));
            newRow.setNewRowState(Row.STATUS_INITIALIZED);
            int lastRowIndex = dciter.getNavigatableRowIterator().getRangeIndexOf(lastRow);
            dciter.getNavigatableRowIterator().insertRowAtRangeIndex( lastRowIndex+1, newRow);
            // make the new row the current row of the table
            dciter.setCurrentRowIndexInRange(lastRowIndex);
            dciter.setCurrentRowWithKey(newRow.getKey().toStringFormat(true));
            //table should have its displayRow attribute set to //"selected"
           // AdfFacesContext.getCurrentInstance().addPartialTarget(slotDetailsTable);
    3. When filling in a new value for SlotFromN column (note that SlotFromN column and FixedSlotId column are the rowKey), hit the exception below:
    [2013-12-04T13:04:28.866+08:00] [DefaultServer] [ERROR] [] [oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter] [tid: [ACTIVE].ExecuteThread: '14' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: eb5e281b-6b07-4c17-987e-049792c97dda-000001bf,0] [APP: YPCApp] [DSID: 0000KAvzIaA5qYWFLzmJOA1IbdqZ000003] ADF_FACES-60096:Server Exception during PPR, #7[[
    oracle.jbo.InvalidOperException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-34014. Error message parameters are {0=oracle.jbo.Key[21 null ], 1=root}
    at oracle.jbo.uicli.binding.JUCtrlHierBinding.bringNodeToRangeKeyPath(JUCtrlHierBinding.java:859)
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding.bringNodeToRangeKeyPath(FacesCtrlHierBinding.java:122)
    at oracle.adfinternal.view.faces.model.binding.RowDataManager.setRowKey(RowDataManager.java:131)
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$FacesModel.setRowKey(FacesCtrlHierBinding.java:951)
    at org.apache.myfaces.trinidad.component.UIXCollection.setRowKey(UIXCollection.java:527)
    at org.apache.myfaces.trinidad.component.UIXTable.setRowKey(UIXTable.java:760)
    at oracle.adfinternal.view.faces.renderkit.rich.TableRendererUtils._processStampedChildrenForActiveRow(TableRendererUtils.java:2950)
    at oracle.adfinternal.view.faces.renderkit.rich.TableRendererUtils.processFacetsAndChildrenForClickToEdit(TableRendererUtils.java:1604)
    at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.processFacetsAndChildrenForClickToEdit(TableRenderer.java:352)
    at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.decodeChildren(TableRenderer.java:193)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1347)
    at org.apache.myfaces.trinidad.component.UIXCollection.processDecodes(UIXCollection.java:226)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at oracle.adf.view.rich.component.fragment.UIXRegion.decodeChildrenImpl(UIXRegion.java:605)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXForm.processDecodes(UIXForm.java:75)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:1365)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:1351)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:1124)
    at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)
    at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:933)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl$ApplyRequestValuesCallback.invokeContextCallback(LifecycleImpl.java:1574)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:416)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:225)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:192)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:478)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:478)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:303)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:208)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:137)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:120)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:217)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:81)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:225)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3367)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
    at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564)
    at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:254)
    4. I think problem maybe is related with row key, but I need end user to change rowkey column value. does it allow changing the value of column as row key? I found this problem maybe only occur for new created row. For those existing rows, even I change the value of row key column, no such problem occurred, how do I handle this situation?
    Appriciate if anybody can help.

    Hi Bangaram,
    Thank you for your reply. 
    The error: "Root cause error code is JBO-34014. Error message parameters are {0=oracle.jbo.Key[21 null ], 1=root} "
    I didn't create master records, I just used joint queries for information display of both master and detail. I am trying to create a row in the UI table to create a new detail record and master record already exists.
    The row key for new added row in UI rich table is [21 null ], row key of detail records table composes of 2 columns. 21 is for FixedSlotId and null is for SlotFromN. when I provide a new value for SlotFromN column in UI rich table, problem will occur.

  • Determining the row id or primary key columns and values genericaly

    Hi There
    Does anyone perhaps know how to determine the rowid of the
    currently selected row in a form, or alternatively the primary
    key values/columns?
    Regards
    Herman

    Hi Tranen,
    you can view the constraints and respective columns by setting the
    Table Shape Properties in the Property Inspector.
    Select (all) the tables on the Diagram you want
    In the Property Inspector,under Constraints -Set the 'Show Constraint Columns' to 'True',
    Set 'Show Constraints' to 'True' .
    Constraints (PK,UK,FK,Check)
    Also Set the 'Show Columns' option to 'False' .This will be under display options in the Property inspector.
    This should modify the Table shape in the diagram as follows:
    <Table name>
    <PK> PKName:Column1,Column2
    <UK>UKName:Column3
    <FK>FKname:Column1
    are you looking for the same?
    Thanks.

Maybe you are looking for

  • How can I get rid of "handles" on a Numbers table?

    The "handles" on tables are useful when designing a spreadsheet. However, when entering data into that same table those same "handles" are annoying. This is not a problem for me, but I have designed a couple of spreadsheets for my 87 year old mother

  • Apple TV 2 Home Sharing depends on Source Device?

    So I've been running into an issue with Home Sharing on my Apple TV 2.  This is present on both the 4.2.2 and 4.3.2 firmware. (I own 2 Apple TV 2's. One vanilla and one running FireCore aTV Flash Black) When attempting to play back video content from

  • No Internet with AEBS.

    I had my iMac setup to connect to the Internet via an AEBS that was hooked directly to my cable modem. I had lightening to strike near my house that nuked a cable modem and an AEBS. I have them replaced now and ran through the same setup I had before

  • Rule Index Creation taking indefinte time

    I am using Oracle 10.2.0.3 database. I have a model with nearly 250000 triples. When I am trying to create rule index on it using 'rdfs' rulebase, it is taking indefinite time. Yesterday night I have started the script and even after 15 hours it was

  • Itunes issues with Windows having to do with Apple's patent

    I had a thought and am not sure if it's right. I was wondering if myissues with Apple Itunes store on Windows 7 has anything to do with the Patent laws and all with Apple and samsung and all that.