Update of varray columns

Hi all,
Can I update a varray column.Oracle version we are using is 9.2.0.8.
In the below given table structure and sample data, in second insert statement, email column is having null values.In the actual table we have around 200 - 300 columns where email value is null, i want update those columns where email is null.Is it possible to update only one column in a varray column.
CREATE TABLE XXEACCESS_IMPL
( REQUEST_ID VARCHAR2(20 BYTE),
STATUS CHAR(1 BYTE),
SYSTEM_IMPL VARCHAR2(50 BYTE),
ART_REQUEST_ID NUMBER,
CALL_DATA WF_PARAMETER_LIST_T,
LAST_UPDATED_DATE DATE DEFAULT sysdate);
CREATE OR REPLACE type SCOTT.WF_PARAMETER_T as object
( NAME VARCHAR2(30), VALUE VARCHAR2(2000),
MEMBER FUNCTION getName return varchar2,
MEMBER FUNCTION getValue return varchar2,
MEMBER PROCEDURE setName (pName in varchar2),
MEMBER PROCEDURE setValue(pValue in varchar2));
CREATE OR REPLACE
type body SCOTT.WF_PARAMETER_T as
MEMBER FUNCTION getName return varchar2 is
begin
return name;
end getName;
MEMBER FUNCTION getValue return varchar2 is
begin
return value;
end getValue;
MEMBER PROCEDURE setName(pName in varchar2) is
begin
name := pName;
end setName;
MEMBER PROCEDURE setValue(pValue in varchar2) is
begin
value := pValue;
end setValue;
end;
Insert into XXEACCESS_IMPL
(REQUEST_ID, STATUS, SYSTEM_IMPL, ART_REQUEST_ID, CALL_DATA, LAST_UPDATED_DATE)
Values ('EA39050', 'Y', 'CONTACT_MANAGEMENT_REQUEST', 27084, wf_parameter_list_t(
wf_parameter_t('EMAIL', '[email protected]'), wf_parameter_t('DOMICILE', 'US')), TO_DATE('05/03/2006 16:45:18', 'MM/DD/YYYY HH24:MI:SS'));
Insert into XXEACCESS_IMPL
(REQUEST_ID, STATUS, SYSTEM_IMPL, ART_REQUEST_ID, CALL_DATA, LAST_UPDATED_DATE)
Values
('EA39045', 'Y', 'CREATE_ACCOUNT', 27089,
wf_parameter_list_t(
wf_parameter_t('EMAIL',''),WF_PARAMETER_T('DOMICILE','US')),
TO_DATE('05/03/2006 17:13:08', 'MM/DD/YYYY HH24:MI:SS'));
Please help me in this regard.
Thanks
Raghu

You can use this statement:
UPDATE xxeaccess_impl x
   SET call_data =
       CAST (MULTISET (SELECT CASE WHEN temp_tab.name = 'EMAIL' AND temp_tab.value IS NULL THEN
wf_parameter_t ('EMAIL', '[email protected]')
ELSE
VALUE (temp_tab)
END CASE
                         FROM TABLE (SELECT call_data
                                       FROM xxeaccess_impl
                                      WHERE x.ROWID = ROWID
                                     ) temp_tab
             AS wf_parameter_list_t
            );But, better way is to use PL/SQL: retrieve the entire varray, update its elements, and then store the changed varray back in the database.
Regards,
Zlatko

Similar Messages

  • Updating one varray  column in a table

    Hi ,
    We are using 10gR2 on AIX . I have one varray column in a table which has be updated ..To update this column , data is fetched in a query by using 2 tables.Is there any way to reduce the update time?
    Edited by: Minu on 25-Apr-2011 20:24

    HOW TO: Post a SQL statement tuning request - template posting

  • Access for update only one column in table?

    Hi all,
    My need is to grant access for update only one column c1 in table t1.
    I guess I should use view, could you please give me some example? Maybe other ideas?

    Hi,
    You can grant privileges on individual columns.
    GRANT   UPDATE (c1)
    ON      t1
    TO      grantee_name;Look up GRANT in the SQL language manual. Annoyingly, in recent editions of the manual, GRANT is not indexed, but it's in alphabetic order with all the other statements:
    http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_9013.htm#i2155015

  • Tabular Report for Update a single column

    Hello Everyone,
    I have a tabular report which will display 1 column (apart from primary key),
    1. I will display a edit icon (on primary key)
    2. when the user selects this icon, this only row must become updatable (only one column must become text item, so that user can modify the value).
    3. Next this text item, i would like to display save button and cancel button so that user can click one of these buttons next to that particular row.
    Any help would be appreciated.
    Regards
    Anil

    There is no easy way to do this without some incredibly lengthy javascript. Tabular forms still do not give much declarative control to the developer.
    If you are looking to click a button and update one column on one row, it's easiest to change your design to two pages using report and form. Make the first page the report with an Edit button, click the button (nothing more than a link) and it goes to a basic form with only one updateable field. After submit, branch back to the first page. Easy.
    For the end user, there are no more mouse clicks involved in this than what you described originally so it's likely it'll be an acceptable application design change.

  • Update a single column of a table

    Hi Champs,
    I want to update a single column of table PA0000.
    Following is ABAp code I am using:
    UPDATE pa0000 SET massn = wa_upd_actn71-massn
                       WHERE pernr = wa_upd_actn71-pernr AND
                              massn = c_crct_entry.
    where in current scenario wa_upd_actn71-massn = 54,
                                         wa_upd_actn71-pernr = 10005092,
                                         c_crct_entry = 71.
    But this code is not working and note updating the DB table PA0000.
    Can you help me out?
    Edited by: Nishant Khimesra on Apr 7, 2009 2:00 PM
    Edited by: Nishant Khimesra on Apr 7, 2009 2:00 PM

    hiii,
    If u want to update it thr program then write the query as update <dbtablename> set fld = value where <condn>. make sure that the values u pass are converted as per the values in database.
    2nd way is goto se16n
    specify table name and then enter &sap_edit on command line. sap editing function will be edited. specify the filter parameters on the field and then execute the transaction. u can change thd data instantly as the data appears in editable alv.
    Regards,
    Anil N.

  • Need to update a single column in a table with some other column value

    Hi experts,
    I was about to change one column data type in a table. Then I renamed that column name to "old_column_name" . Later I added new column name with required datatype( My case its NCLOB). Now I want to update the new column value with old column value.I mean i have to copy the data. But data amount is very huge. Its more than 1.5 crores of data. But on promote day, I have only 1 hr of outage. Please suggest the effective solution to achieve this.

    Hi Stew
    I have 1 primary key in my table and 11 foreign keys in my table.there are 20 check constraints as well.
    If i go for an online redefine of a table, these objects will be created back automatically?
    Please clarify.
    This is my table. Here Remarks is the column with CLOB datatype. To support multi language, I need to change it to NCLOB. That column having data so i cant rename it.
    So I added new column , after renaming that remarks to old_remarks. Now new column remarks is ready with NCLOB data type, but no data in it.
    To copy the old remarks column into new remarks column, i thought to write one script. But how it is achievable using "DBMS_REDEFINITION". Please explain me,
    create table XXXXXXXXXX
    ID NUMBER(8),
    COMPLETED_DATE DATE,
    COMMUNICATION_MEDIUM VARCHAR2(32),
    REMARKS1 VARCHAR2(4000),
    COPY VARCHAR2(1),
    IO_MARKER VARCHAR2(3),
    EVENT_DATE DATE,
    CON_REF_NO NUMBER(8),
    DEP_CODE VARCHAR2(6),
    SFM_STAFF_NO NUMBER(8),
    CRPD_ID NUMBER(8),
    CRPD_ID_COPY NUMBER(8),
    STATUS VARCHAR2(2),
    COMEBACK_NO NUMBER(2),
    ADD_ADD_ID NUMBER(10),
    AEV_ID NUMBER(8),
    OLAY_ID NUMBER(8),
    COE_TYPE VARCHAR2(3),
    CET_CODE VARCHAR2(6),
    DEP_CODE_RAISED_BY VARCHAR2(6),
    SFM_STAFF_NO_RAISED_BY NUMBER(8),
    USR_CREATED VARCHAR2(30),
    CREATED DATE,
    USR_CHANGED VARCHAR2(30),
    CHANGED DATE,
    EXT_REF_ID VARCHAR2(150),
    REPLY_EXPECTED_DATE DATE,
    SEC_ID VARCHAR2(8) not null,
    PROTECTED VARCHAR2(1),
    APPROVED_BY NUMBER(8),
    DOCUMENT BLOB,
    OLD_REMARKS CLOB,
    CTS_ID NUMBER(8),
    MESSAGE_STATUS VARCHAR2(4),
    WORD_DOCUMENT NCLOB,
    REMARKS NCLOB
    Edited by: Hema on Jul 2, 2012 8:31 AM
    Edited by: Hema on Jul 2, 2012 8:31 AM

  • Update table a columns using columns from table b (values of 2 columns of table b need to taken from table c)

    Guys,
    I need to update table A columns col3, col4, col5 and col6 by table b columns col3, col4, col5 and col6 however table b col5 and col6 values need to come from table c col1.
    Means table b col5 and col6 have values in it however i need to replace them with value from table c col1 and need to update table a col5 and col6 accordingly.
    table a and table b has col1 and col2 in common.
    i am trying something like this.
    Update a
    a.col3 = b.col3,
    a.col4 = b.col4,
    a.col5 = (select col1 from table_c c where c.col2=b.col5),
    a.col6 = (select col1 from table_c c where c.col2=b.col6)
    from table_A a inner join table_b
    on  a.col1=b.col1 and a.col2=b.col2
    can someone help me reframe above update query?
    thanks in advance for your help.

    Try the below:(If you have multiple values, then you may need to use TOP 1 as commented code in the below script)
    create Table tableA(Col1 int,Col2 int,Col3 int,Col4 int,Col5 int,Col6 int)
    Insert into tableA values(1,2,3,4,5,6)
    create Table tableB(Col1 int,Col2 int,Col3 int,Col4 int,Col5 int,Col6 int)
    Insert into tableB values(1,2,30,40,50,60)
    create Table tableC(Col1 int,Col2 int,Col3 int,Col4 int,Col5 int,Col6 int)
    Insert into tableC values(100,50,30,40,2,2)
    --Insert into tableC values(200,50,30,40,2,2)
    Insert into tableC values(100,60,30,40,2,2)
    Select * From tablea
    Update a Set
    a.col3 = b.col3,
    a.col4 = b.col4,
    a.col5 = (select col1 from tablec c where c.col2=b.col5 ),
    a.col6 = (select col1 from tablec c where c.col2=b.col6 )
    from tableA a inner join tableb b
    on a.col1=b.col1 and a.col2=b.col2
    --Update a Set
    --a.col3 = b.col3,
    --a.col4 = b.col4,
    --a.col5 = (select Top 1 col1 from tablec c where c.col2=b.col5 Order by c.Col1 asc),
    --a.col6 = (select Top 1 col1 from tablec c where c.col2=b.col6 Order by c.Col1 asc)
    --from tableA a inner join tableb b
    --on a.col1=b.col1 and a.col2=b.col2
    Select * From tablea
    Drop table tablea,Tableb,TableC

  • How to Update a clob column..it gives error string literal too long

    I am trying to update a clob column of a table but it gives error string literal too long plz tell me what's the issue
    ORA-01704: string literal too long

    Peeyush wrote:
    I am trying to update a clob column of a table but it gives error string literal too long plz tell me what's the issue
    ORA-01704: string literal too longThere's a problem with my car. It won't start. Why won't it start? Please tell me!
    Oh wait, you can't, because I haven't given you nearly enough information...
    In other words, if you would like help in trying to work out where you've gone wrong, you should provide a small enough example of your code that demonstrates the error. We might then actually stand a chance of being able to help you!

  • Updating a title column in list that is a lookup column to document library in sharepoint designer workflow 2010

    Hi I have a requirement to create a list item in Contracts List when a document is uploaded in Contracts Vendor library.
    Contracts List will
    have  columns - Contract Name ( title column), Contract Number, Contract Start date and end date.
    Contracts Vendor library will have Contract
    Name,Contract NUmber.
    User will select the Contract Name from drop down ( this is look up column linked to Contract Name in Contract
    List).When user uploads document in Contract Vendor library then item should be created in Contract List with selected Contract Name and
    Contract number .
    Contracts and Contracts Vendor are related by look up Contract Name. Contract Name is internally a title column in
    Contracts List.
    Issue1 :
    Since Contract number is look up column, while I am creating item the Contract name is not getting updated in
    Contracts List. I have to use sharepoint designer workflow to achieve this task. Title colum or Contract Name shows no title.
    Issue 2:
    One
    more issue I am facing is that Contracts List has Section and Division cascaded drop downs when i select values from section and division
    dropdowns and save item in Contracts list the values are getting saved in Contract List.
    Could anyone suggest me how to handle this ? I am
    attaching the screenshots of the list and library structure. TRuly appreciate your help.
    Below are screenshots of the list structure

    Hi,
    According to your post, my understanding is that you wanted to update a title column in list that is a lookup column to document library in sharepoint designer workflow 2010.
    I try to reproduce the issues as follows:
    Create a custom list named Contracts List, add columns: Contract Name ( title column), Contract Number(Number), Contract Start date(Data and Time) and Contract End date (Data and Time).
    Create a document library named Contracts Vendor library, add columns: Contract Name(Lookup), Contract NUmber(Lookup).
    Create a workflow associated to the Contracts Vendor library.
    Add action: Create List Item.
       5. Start the workflow automatically when an item is created.
       6. Upload a document, select the Contract Name and Contract NUmber, the workflow will be started automatically.
       7. Open the Contracts List, an item will be added with the Contract Name and Contract Number in the Contracts Vendor library.
    Thank you for your understanding.
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • How to update managed metadata column for all file in document library using powershell

    Hi,
    How to update managed metadata column for all file in document library using powershell?
    Any help on it.
    Thanks & REgards
    Poomani Sankaran

    Hi TanPart,
    I have changed the code which you have give in order to get the files from SharePoint 2010 Foundation  Document Library.But i am getting below error in powershell.
    Property 'ListItemCollectionPosition' cannot be found on this object; make sure it exists and is settable.
    Could you tell me which is the issues in it?
    See the code below.
    $web = Get-SPWeb http://ntmoss2010:9090/Site
    $list = $web.Lists["DocLib"]
    $query = New-Object Microsoft.SharePoint.SPQuery
    $query.ViewAttributes = "Scope='Recursive'";
    $query.RowLimit = 2000
    $caml = '<Where><Contains><FieldRef Name="Title" /><Value Type="Text">Process Documents/Delivery</Value></Contains></Where>' +
            '<OrderBy Override="TRUE"><FieldRef Name="ID"/></OrderBy>'
    $query.Query = $caml
    do
        $listItems = $list.GetItems($query)
        $spQuery.ListItemCollectionPosition = $listItems.ListItemCollectionPosition
        foreach($item in $listItems)
            #Cast to SPListItem to avoid ambiguous overload error
            $spItem = [Microsoft.SharePoint.SPListItem]$item;
            Write-Host $spItem.Title       
    while ($spQuery.ListItemCollectionPosition -ne $null)
    Thanks & Regards
    Poomani Sankaran

  • Derived table 'tablename' is not updatable because a column of the derived table is derived or constant.

    Hi Guys,
    I have a With CTE table expression ,this cte gets the value from startdate and enddate
    I need to insert this startdate and enddate into a table ,while inserting into table,i got the below error,
    Derived table 'Datematrix' is not updatable because a column of the derived table is derived or constant.
    below is the query i used,
    declare @StartDate date='01/01/2013'
    declare @EndDate date='12/31/2013'
    ;WITH Datematrix(AllocationDate)
    As
    SELECT @StartDate AS AllocationDate
    UNION ALL
    SELECT DATEADD(D,1,AllocationDate) AS AllocationDate
    FROM Datematrix WHERE AllocationDate<@EndDate
    Insert into Datematrix(AllocationDate)
    select * from Datematrix 
    any guys update this solution.
    Thanks 
    Bhupesh.R

    ;WITH Datematrix(AllocationDate)
    As
    SELECT @StartDate AS AllocationDate
    UNION ALL
    SELECT DATEADD(D,1,AllocationDate) AS AllocationDate
    FROM Datematrix WHERE AllocationDate<@EndDate
    Insert into Datematrix(AllocationDate)
    select * from Datematrix 
    Hello,
    Your CTE bases only on fix value = @StartDate , not on a table/view; here do you want to insert data to? This don't work in any way.
    Olaf Helper
    [ Blog] [ Xing] [ MVP]

  • ORA-14402: updating partition key column would cause a partition change

    Hi,
    When I am trying to execute an update statement where i am tring to update date values emp_det from 11-oct-2010 to 12-nov-2010.
    Oracle throws an error :
    ORA-14402
    updating partition key column would cause a partition change
    I think that this is because emp_det is a partitioning key of a partitioned table.
    Oracle documentation says that
    "UPDATE will fail if you change a value in the column that would move the
    row to a different partition or subpartition, unless you enable row
    movement" .
    alter table t enable row movement;
    I did not understand what is meant by "enable row movement".
    I cannot drop the partitions and recreate it after updating the table and also i don't have proper priviliges for enale row movement syntax
    because of the lack of privileges. How to solve this is issues with out row movement and recreate partition.
    Can this be done by a developer or is there any other way to execute update in this case? its urgent.. pls help..
    thanks in advance..
    By
    Sivaraman
    Edited by: kn_sivaraman on Nov 1, 2010 2:32 AM

    kn_sivaraman wrote:
    I did not understand what is meant by "enable row movement". Each partition in partitioned table is physically separate segment. Assume you have a row that belongs to partition A stored in segment A and you change row's partitioning column to value that belongs to partition B - you have an issue since updated row can't be now stored in segment A anymore. By default such update is not allowed and you get an error. You can enable row movement and Oracle will move row to target partition:
    SQL> CREATE TABLE SALES_LIST(
      2                          SALESMAN_ID NUMBER(5,0),
      3                          SALESMAN_NAME VARCHAR2(30),
      4                          SALES_STATE VARCHAR2(20),
      5                          SALES_AMOUNT NUMBER(10,0),
      6                          SALES_DATE DATE
      7                         )
      8    PARTITION BY LIST(SALES_STATE)
      9    (
    10     PARTITION SALES_WEST     VALUES('California', 'Hawaii'),
    11     PARTITION SALES_EAST     VALUES('New York', 'Virginia', 'Florida'),
    12     PARTITION SALES_CENTRAL  VALUES('Texas', 'Illinois'),
    13     PARTITION SALES_OTHER    VALUES(DEFAULT)
    14    )
    15  /
    Table created.
    SQL> insert
      2    into sales_list
      3    values(
      4           1,
      5           'Sam',
      6           'Texas',
      7           1000,
      8           sysdate
      9          )
    10  /
    1 row created.
    SQL> update sales_list
      2    set  sales_state = 'New York'
      3    where sales_state = 'Texas'
      4  /
    update sales_list
    ERROR at line 1:
    ORA-14402: updating partition key column would cause a partition change
    SQL> alter table sales_list enable row movement
      2  /
    Table altered.
    SQL> update sales_list
      2    set  sales_state = 'New York'
      3    where sales_state = 'Texas'
      4  /
    1 row updated.
    SQL> SY.

  • Updating partition key column would cause a partition change

    while i am executing this query in sql i am getting an error message saying
    that
    updating partition key column would cause a partition change
    SQL> update questionbnkmaster set sectionid=23 where qno=19;
    update questionbnkmaster set sectionid=23 where qno=19
    ERROR at line 1:
    ORA-14402: updating partition key column would cause a partition change
    what can do to update the table without changing to the other fields
    tyhanx in advance
    cinux

    try this
    ALTER TABLE questionbnkmaster ENABLE ROW MOVEMENT
    /Cheers, APC

  • How to Update a particular column with custom SQL in JHeadstart

    Hi Friends,
    I was trying to keep an update SQL statement in VO (missing right Parenthesis exception is thrown)
    Please to let you know about my Requirement.
    I have a column in Sales_Person Table "TARGET' and in Sales_Admin Table "INCENTIVE"
    So Admin will allot a particular Amount in Incentive column for all the sales. (i.e globally for one and all)
    When a Sales_Person enter a target of some number say 80 in the Target field.
    while saving i want to deduct the target from incentive and the result must be update in Incentive column.
    can you please suggest me where should i keep this functionality
    Can you please help me out in solving this issue.
    Thanks in advance.
    Rahul

    Rahul,
    You can do this in the doDMl method of your Entity Object.
    See this white paper:
    http://www.oracle.com/technology/products/jdev/collateral/papers/10131/businessrulesinadfbctechnicalwp.pdf
    If you have follow-up questions, please use the JDeveloper forum, since your question is not related to JHeadstart.
    Steven Davelaar,
    JHeadstart Team.

  • Nsert/Update and Add Column at the same Table and at the "same" Time

    Hello,
    I want Insert/Update and Add Column at the same Table and at the "same" Time but in different sessions.
    Example:
    At first the "insert/update" statement:
    Insert into TestTable (Testid,Value) values (1,5105);
    After that the "add" statement:
    Alter table TestTable add TestColumn number;
    - sadly now I get the message: ORA-00054: resource busy and acquire with NOWAIT specified
    "insert/update" statement:
    Insert into TestTable (Testid,Value) values (2,1135);
    After that the execute commit.
    I don't know when the first session set the commit statement so I want that the DB the "Alter Table..." statement execute if it's possible.
    If it's possible I want to save a repeat loop with the "Alter Table..." statemtent.
    Thanks for ideas

    Well I want to walk in the rain without and umbrella and still stay dry, but it ain't gonna happen.
    You can't run a DDL statement against a table with transactions pending. Session 2 has to wait until session commits or rollbacks (or until the session is killed). That's just the way it is.
    This makes sense if you think about it. The data dictionary has to be consistent across all sessions. If session 2 was allowed to change the table structure whilst session 1 has a pending transaction then the database is in an inconsistent state. This is easier to see if you consider the reverse situation - the ALTER TABLE statement run by session 2 does a DROP COLUMN TESTID rather than adding a column: now what should happen to session 1's INSERT statement? You have retrospectively invalidated a statement that was perfectly legal when it was executed.
    If it's possible I want to save a repeat loop with the "Alter Table..." statemtent.Fnord.
    Cheers, APC

Maybe you are looking for

  • IPod Click Wheel games compatible with ipod nano 5th Generation

    I've found the iPod Click Wheel Games by clicking the triangle that appears next to the "App Store" tab and clicking the third option, "iPod Click Wheel Games." But when I look at the details of any of the games it says they are compatible with: "Thi

  • HT5622 iCloud, old e-mail problem?!

    I changed my e-mail on Apple ID a while ago and everything was fine until I updated my iPhone 5 to iOS 7. It keeps asking for my old e-mail (which i permanently deleted) for iCloud and it doesn't accept the current password, ofcourse. How can I remov

  • Canon HFS10/100 import procedure?

    Hi, I'm using Final Cut 6.0.6 and I'm trying to learn to import from a Canon SD card-based camcorder (the HFS100). I understand I'm supposed to use Log & Transfer, but I'm a bit unclear about the details... I opened Log and Transfer with the camera c

  • ICM Partition In Call Manager

    Hello, Do all the DNs in ICM have to be in the same partition in CallManager? Because some calls parked from the ICM extensions cannot be retrieved on non-ICM extensions, which are in a different partition. Thanks, Matt

  • Ejecting Drive closes Finder

    When clicking the Eject button in Finder beside my external drives, it causes finder to close and about 50% of the time reports error when I unplug the drive later on. Is this a bug or is it suppose to close finder like that? Tiger didn't act this wa