Issues in updating OE_ORDER_HEADERS_ALL attribute columns in trigger

I have the requirement to update the attribute4 of the oe_order_headers_all based on certain data validations. A DFF has been defined on attribute4 as well. When i try to create a before insert trigger on oe_order_headers_all to update the attribute4 values, trigger completes without any errors, but the attribute4 is not getting updated with the data.
Is there any restriction to insert the values on attribute columns of the Oracle base tables? Because when i tried the after update trigger the attribute columns could retain the values.
Can somebody help me out on this issue?

Create Or Replace Trigger OE_HEADER_TRIG_TEST
Before insert
ON OE_ORDER_HEADERS_ALL
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
declare
v_customer_number ra_customers.customer_number%type;
v_ship_to_org_id oe_order_headers_all.ship_to_org_id%type ;
v_country_code varchar2(50);
begin
v_ship_to_org_id := :NEW.ship_to_org_id;
select rac.customer_number,
country
into v_customer_number,
v_country_code
from ra_addresses_all raa,
ra_site_uses_all ras,
ra_customers rac
where ras.address_id = raa.address_id
and ras.site_use_id = v_ship_to_org_id
and ras.primary_flag = 'Y'
and raa.customer_id = rac.customer_id;
:new.attribute4 := v_customer_number;
:new.attribute5 := v_country_code;
exception
when others then
raise_application_error(-20202,'Error in trigger'||sqlerrm);
end;
**I have verified that attributes are getting assigned in the trigger but is not stored in the table.

Similar Messages

  • Issue in Addition of  attribute column in VO

    Hi All,
    I have a custom VO in which dependent on custom EO which requires a extra attribute to be added. i added that attribute in both EO & VO. But changed the definition of page to add this extra field to accomdate the extra attribute, im getting below error, i have checked VOimpl and VOrowimpl both the addition of new attribute, need suggestion in this regard.
    java.lang.NullPointerException
         at oracle.jbo.server.ViewObjectImpl.getAttributeIndexOf(ViewObjectImpl.java:4166)
         at oracle.apps.fnd.framework.webui.OAMessageLovInputHelper.getMinCharsForLookAhead(OAMessageLovInputHelper.java:3944)
         at oracle.apps.fnd.framework.webui.beans.message.OAMessageLovInputBean.getMinCharsForLookAhead(OAMessageLovInputBean.java:1249)
         at oracle.apps.fnd.framework.webui.OAMessageLovInputHelper.addLookAheadData(OAMessageLovInputHelper.java:3206)
         at oracle.apps.fnd.framework.webui.OAMessageLovInputHelper.processRequestAfterController(OAMessageLovInputHelper.java:1106)

    Hi,
    Looks like your newly added attribute didn't take effect,
    Did you added a new column in the database?
    In EO how did you added the new attribute? using sync DB option?
    In the VO query did you added the new attribute as the last column?
    After adding the Attribute in the VO, did you checked the Attribute Mapping is showing correct mapping?
    Thanks,
    With regards,
    Kali.
    OSSi.

  • Attribute Columns in Table Fnd_Lookup_Values

    Hello All, I am trying to update the attribute columns (Attribute1, Attribute2, Attribute3 etc) in the table Fnd_Lookup_Values from the Applications (Forms) side. How do I do it? From Application Developer > Application > LookUps > Common, I can Enter/Update only Lookup Code, Meaning, Description, Tag Effective Dates. I want to enter values in the Attribute Columns too. Please help!!
    Thank You, Naveen Gagadam.

    Hi,
    You need to define the DFF first from the application. For that:
    1. Go to System Administrator responsibility (or any of the Super User responsibilities in the system)
    2. Go to the DFF definition screen: Application > Descriptive > Segments
    3. Search your DFF. In your case:
    - Application: Application Object Library
    - Title: Common Lookups
    4. Unfreeze the DFF (if it's frozen)
    5. Click on Segments button and define the attributes you want to populate
    Once done that, open the lookups screen and you will be able to populate the attributes.
    Hope it helps.

  • Can we update oracle standard table Attributes column by custom trigger?

    Can we update the oracle Standard table's Attributes column using custom trigger? Is it allowed by oracle? Is this supported?
    Thanks

    ATTRIBUTE columns store DFF information and therefore custom code can be used to update their contents. Care must be taken that such updates do not cause "logical" corruption (an ATTRIBUTE column may be designed to store the color of a product, for example, but an incorrect SQL statement can update the value to a numeric one, thus causing corruption - Oracle does not have a means to check the validity of these update statements). Also, some localizations, such as Brazil and India, reserve some ATTRIBUTE columns for their use - updating such columns is not supported. More information may be found in the Flexfields Guide for your release at http://www.oracle.com/technology/documentation/applications.html
    HTH
    Srini

  • Issue in Invoking an Updatable View with Instead of Trigger

    Hi,
    I am trying to insert a record using Updatable View with Instead of Trigger. When i try to save the data, i get the below error:
    java.sql.SQLException: ORA-01403: no data found
    ORA-06512: at line 1
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:889)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:476)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:204)
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:540)
    at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:213)
    at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1075)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1466)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3752)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3887)
    at oracle.jdbc.driver.OracleCallableStatement.executeUpdate(OracleCallableStatement.java:9323)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1508)
    at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:172)
    at oracle.jbo.server.OracleSQLBuilderImpl.doEntityDML(OracleSQLBuilderImpl.java:432)
    at oracle.jbo.server.EntityImpl.doDMLWithLOBs(EntityImpl.java:8566)
    Can someone help me resolve this issue?
    Also it would be great if you can share Sample codes for Invoking an updatable view with instead of trigger on Save/commit.
    Regards,
    Jeevan

    As a trigger is executed in the db and not in your app it's really hard to help as you did not give any useful information.
    Have you read this blog http://stegemanoracle.blogspot.com/2006/03/using-updatable-views-with-adf.html ?
    Timo
    Edited by: Timo Hahn on 22.09.2011 09:15
    And my friend google also found http://technology.amis.nl/blog/1447/adf-business-components-resfresh-after-insertupdate-and-instead-of-triggers

  • Updating attribute columns

    Hi,
    we are on oracle applications 11i.
    We have a requirement to create a descriptive flexfield in the items form and suppliers form to accept ids generated in another system. update would be from database end.
    what is the impact of updating attribute columns in two tables: MTL_SYSTEM_ITEMS_B and po_vendors with a simple procedure, i.e without using existing Oracle APIs?
    Regards

    Hi,
    here is why i think i need to insert a row the value set table : fnd_flex_values .
    after i update the record of the table and alter attribute field with value XXX for value set segment GLOBAL_ID, I go to the application and query the record. It gives me error:
    Value XXX for the flexfield segment Global ID does not exist in the value set XX_GLOBAL_ID.
    this error only goes away when i insert the value XXX to the descriptive flexfield segment values list.
    I defined the value set as independent. If you have another mean where i can accomplish this, I will like to know about it.
    From ittoolbox forum i had the name of the package, which is fnd_flex_values_pkg. I need more details on the tables that i need to update or insert rows into and about the package; if possible.
    thanks

  • API for RA_CUSTOMER_TRX_ALL to update attribute columns

    Hi,
    Not sure if this is the right place for this but does anybody know if there is an API for updating RA_CUSTOMER_TRX_ALL table
    I'm wanting to update the Attibute columns.
    Thanks
    Malcolm

    Oracle typically does not provide APIs for ATTRIBUTE columns as these need to be maintained by customers.
    HTH
    Srini

  • Update of CLOB column issue

    I am not sure if this is the correct forum for this question, so please forgive if this is posted in wrong forum.
    I am new to working with CLOBs in Oracle. The procedure updates a CLOB column which stores large XML files. The XML files are first moved to the /u04 directory, then we execute the procedure which looks for the XML in /u04, then uses those XML files to update the CLOB column.
    The procure works fine in our development environment, but doesn't work in our System Test box. No exceptions are thrown in Sys Test, but when we check the CLOB column it's NULL/empty.
    Both Dev and Sys Test environments are on the same physical server.
    Is there something in the database setup I should be looking for which may cause this difference in functionality?
    Code is below. I'm sure it could be better but this is my first go-around with CLOBs.
    Any help is greatly appreciated!
      --open CLOB used to clear out old XML in CLOB column
       dbms_lob.open(v_pre_clob, dbms_lob.lob_readwrite);
       -- prep XML CLOB column for update
       UPDATE REPORT_TBL
          SET REPORT_XML = v_pre_clob
        WHERE REPORT_ID = p_rep_id;
       --Close pre-update CLOB
       dbms_lob.close(v_pre_clob);
       --get a reference to the XML CLOB that needs to be updated
       select report_xml
         into v_clob
         from report_tbl
        where report_id = p_rep_id for update;   
       --open the target CLOB and source report xml file in /u04
       dbms_lob.open(v_clob, dbms_lob.lob_readwrite);
       dbms_lob.open(v_report_xml_file);
       --Load the contents of the xml file in /u04 into the CLOB column
       dbms_lob.loadclobfromfile(v_clob, v_xml_file,
                                 dbms_lob.lobmaxsize,
                                 v_destination_offset, v_source_offset,
                                 nls_charset_id('US7ASCII'),
                                 v_language_context, v_warning_message);
       --Check for the only possible warning message.
       if v_warning_message = dbms_lob.warn_inconvertible_char then
            dbms_output.put_line('Warning! Some characters couldn''t be converted.');  
       end if;
       --Close both LOBs
       dbms_lob.close(v_clob);
       dbms_lob.close(v_xml_file);
       null;
       EXCEPTION
          WHEN OTHERS THEN
             v_return_code := SQLCODE;
             v_return_mesg := SQLERRM;
             DBMS_OUTPUT.PUT_LINE('PROCEDURE update_xml_from_file');
             DBMS_OUTPUT.PUT_LINE('RETURN_CODE = ' || v_return_code);
             DBMS_OUTPUT.PUT_LINE('RETURN_MESG = ' || v_return_mesg);

    Sorry, pulled that code from development where it was working.
    The issue was the GRANT on the /u04 directory.

  • Trigger Issue while updating same table

    Hi all,
    I am creating one after insert trigger on table tests, which will check, if application id is null, application will be fetched from another table and update the table
    tests table. But this trigger is not updating the application id of the table tests
    CREATE OR REPLACE
    TRIGGER TB_REC_APPL_TESTS1
    AFTER INSERT ON tests FOR EACH ROW
    DECLARE
    v_application_id NUMBER;
    v_rec_appl_tests_id NUMBER;
    v_a_recruit_id NUMBER;
    PRAGMA AUTONOMOUS_TRANSACTION;
    BEGIN
    v_rec_appl_tests_id := :NEW.rec_appl_tests_id;
    v_a_recruit_id := :NEW.a_recruit_id;
    IF :NEW.a_applic_id IS NULL THEN
    SELECT a_applic_id INTO v_application_id FROM recruit WHERE a_recrut_id = v_a_recruit_id;
    dbms_output.PUT_LINE(v_application_id||'-'||v_rec_appl_tests_id);
    UPDATE tests SET a_applic_id = v_application_id
    WHERE rec_appl_tests_id = v_rec_appl_tests_id;--:NEW.rec_appl_tests_id;
    END IF;
    commit;
    END;
    Thanks in advance,
    Pal

    user546710 wrote:
    Hi all,
    I am creating one after insert trigger on table tests, which will check, if application id is null, application will be fetched from another table and update the table
    tests table. But this trigger is not updating the application id of the table tests
    CREATE OR REPLACE
    TRIGGER TB_REC_APPL_TESTS1
    AFTER INSERT ON tests FOR EACH ROW
    DECLARE
    v_application_id NUMBER;
    v_rec_appl_tests_id NUMBER;
    v_a_recruit_id NUMBER;
    PRAGMA AUTONOMOUS_TRANSACTION;
    BEGIN
    v_rec_appl_tests_id := :NEW.rec_appl_tests_id;
    v_a_recruit_id := :NEW.a_recruit_id;
    IF :NEW.a_applic_id IS NULL THEN
    SELECT a_applic_id INTO v_application_id FROM recruit WHERE a_recrut_id = v_a_recruit_id;
    dbms_output.PUT_LINE(v_application_id||'-'||v_rec_appl_tests_id);
    UPDATE tests SET a_applic_id = v_application_id
    WHERE rec_appl_tests_id = v_rec_appl_tests_id;--:NEW.rec_appl_tests_id;
    END IF;
    commit;
    END;
    Thanks in advance,
    Palyou are creating triger on the table and updating it. It will not allow to update since you are firing trigger on same table.
    Best practice is to use other table to update or any other operation.

  • 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

  • How to update the COST column using another table's column

    Dear All,
    I have table:
    table parts: pno, pname, qoh, price, olevel
    table orders: ono, cno, eno, received, shipped
    table odetails: ono, pno, qty
    view:orders_view: ono, cno, eno, received, shipped,sum(qty*price)order_costview:odetails_view: ono, pno, qty, (qty*price)cost
    after I update the price in parts, I need to update COST and ORDER_COST too. The orders_view does not have pno, qty, and price, the odetails_view does not have price, how can I update the COST and ORDER_COST. Please help and Thanks in advance!!!
    I wrote the update the price in parts:
    create or replace procedure change_price(ppno in parts.pno%type, pprice in parts.price%type) as
    begin
        update parts
        set price = pprice
        where pno = ppno;
    end;
    show errorsthis procedure works fine.
    I wrote the trigger:
    create or replace trigger update_orders_v
    after update of price on parts
    for each row
    begin
        update orders_view
        set order_cost = sum(parts.(:new.price)*parts.qty)
        where parts.pno = :new.pno;
    end;
    show errorsIt gives me:Errors for TRIGGER UPDATE_ORDERS_V:
    LINE/COL ERROR
    3/5 PL/SQL SQL Statement ignored
    4/22 PL/SQL ORA-00934: group function is not allowed hereplease help!

    You could add the columns to the tables and then you would need a trigger to update those columns. However, you could just as easily select the price * qty to get the cost, without creating an additional column or trigger. I have no idea what you might want to do with a global temporary table. I think you need to explain what your purpose is, before any of us can suggest the best method. Since I have already demonstrated an update with a view, I will demonstrate an update with the cost column added to the odetails table and a trigger as you asked about. Notice that you will need triggers on both tables, the one that has qty and the one that has price.
    scott@ORA92> create table parts
      2    (pno    number(5) not null primary key,
      3       pname  varchar2(30),
      4       qoh    integer check(qoh >= 0),
      5       price  number(6,2) check(price >= 0.0),
      6       olevel integer)
      7  /
    Table created.
    scott@ORA92> create table odetails
      2    (ono    number(5),
      3       pno    number(5) references parts,
      4       qty    integer check(qty > 0),
      5       cost   number,
      6       primary key (ono,pno))
      7  /
    Table created.
    scott@ORA92> create or replace procedure change_price
      2    (ppno   in parts.pno%type,
      3       pprice in parts.price%type)
      4  as
      5  begin
      6    update parts
      7    set    price = pprice
      8    where  pno = ppno;
      9  end;
    10  /
    Procedure created.
    scott@ORA92> create or replace trigger update_cost1
      2    after insert or update of price on parts
      3    for each row
      4  begin
      5    update odetails
      6    set    cost = qty * :new.price
      7    where  pno = :new.pno;
      8  end update_cost1;
      9  /
    Trigger created.
    scott@ORA92> show errors
    No errors.
    scott@ORA92> create or replace trigger update_cost2
      2    before insert or update of qty on odetails
      3    for each row
      4  declare
      5    v_price parts.price%type;
      6  begin
      7    select price
      8    into   v_price
      9    from   parts
    10    where  pno = :new.pno;
    11    --
    12    :new.cost := :new.qty * v_price;
    13  end update_cost2;
    14  /
    Trigger created.
    scott@ORA92> show errors
    No errors.
    scott@ORA92> insert into parts values (1, 'name1', 1, 10, 1)
      2  /
    1 row created.
    scott@ORA92> insert into odetails values (1, 1, 22, null)
      2  /
    1 row created.
    scott@ORA92> -- starting data:
    scott@ORA92> select * from parts
      2  /
           PNO PNAME                                 QOH      PRICE     OLEVEL
             1 name1                                   1         10          1
    scott@ORA92> select * from odetails
      2  /
           ONO        PNO        QTY       COST
             1          1         22        220
    scott@ORA92> -- update:
    scott@ORA92> execute change_price (1, 11)
    PL/SQL procedure successfully completed.
    scott@ORA92> -- results:
    scott@ORA92> select * from parts
      2  /
           PNO PNAME                                 QOH      PRICE     OLEVEL
             1 name1                                   1         11          1
    scott@ORA92> select * from odetails
      2  /
           ONO        PNO        QTY       COST
             1          1         22        242
    scott@ORA92> -- select works without extra cost column or trigger:
    scott@ORA92> select o.ono, o.pno, o.qty, (o.qty * p.price) as cost
      2  from   odetails o, parts p
      3  where  o.pno = p.pno
      4  /
           ONO        PNO        QTY       COST
             1          1         22        242
    scott@ORA92>

  • Issue with updating partitioned table

    Hi,
    Anyone seen this bug with updating partitioned tables.
    Its very esoteric - its occurs when we update a partitioned table using a join to a temp table (not non-temp table) when the join has multiple joins and you're updating the partitoned column that isn't the first column in the primary key and the table contains a bit field. We've tried changing just one of these features and the bug disappears.
    We've tested this on 15.5 and 15.7 SP122 and the error occurs in both of them.
    Here's the test case - it does the same operation of a partitioned table and a non-partitioned table, but the partitioned table shows and error of "Attempt to insert duplicate key row in object 'partitioned' with unique index 'pk'".
    I'd be interested if anyone has seen this and has a version of Sybase without the issue.
    Unfortunately when it happens on a replicated table - it takes down rep server.
    CREATE TABLE #table1
        (   PK          char(8) null,
            FileDate        date,
            changed         bit
    CREATE TABLE partitioned  (
      PK         char(8) NOT NULL,
      ValidFrom     date DEFAULT current_date() NOT NULL,
      ValidTo       date DEFAULT '31-Dec-9999' NOT NULL
    LOCK DATAROWS
      PARTITION BY RANGE (ValidTo)
      ( p2014 VALUES <= ('20141231') ON [default],
      p2015 VALUES <= ('20151231') ON [default],
      pMAX VALUES <= (MAX) ON [default]
    CREATE UNIQUE CLUSTERED INDEX pk
      ON partitioned(PK, ValidFrom, ValidTo)
      LOCAL INDEX
    CREATE TABLE unpartitioned  (
      PK         char(8) NOT NULL,
      ValidFrom     date DEFAULT current_date() NOT NULL,
      ValidTo       date DEFAULT '31-Dec-9999' NOT NULL,
    LOCK DATAROWS
    CREATE UNIQUE CLUSTERED INDEX pk
      ON unpartitioned(PK, ValidFrom, ValidTo)
    insert partitioned
    select "ET00jPzh", "Jan  7 2015", "Dec 31 9999"
    insert unpartitioned
    select "ET00jPzh", "Jan  7 2015", "Dec 31 9999"
    insert #table1
    select "ET00jPzh", "Jan 15 2015", 1
    union all
    select "ET00jPzh", "Jan 15 2015", 1
    go
    update partitioned
    set    ValidTo = dateadd(dd,-1,FileDate)
    from   #table1 t
    inner  join partitioned p on (p.PK = t.PK)
    where  p.ValidTo = '99991231'
    and    t.changed = 1
    go
    update unpartitioned
    set    ValidTo = dateadd(dd,-1,FileDate)
    from   #table1 t
    inner  join unpartitioned u on (u.PK = t.PK)
    where  u.ValidTo = '99991231'
    and    t.changed = 1
    go
    drop table #table1
    go
    drop table partitioned
    drop table unpartitioned
    go

    wrt to replication - it is a bit unclear as not enough information has been stated to point out what happened.  I also am not sure that your DBA's are accurately telling you what happened - and may have made the problem worse by not knowing themselves what to do - e.g. 'losing' the log points to fact that someone doesn't know what they should.   You can *always* disable the replication secondary truncation point and resync a standby system, so claims about 'losing' the log are a bit strange to be making. 
    wrt to ASE versions, I suspect if there are any differences, it may have to do with endian-ness and not the version of ASE itself.   There may be other factors.....but I would suggest the best thing would be to open a separate message/case on it.
    Adaptive Server Enterprise/15.7/EBF 23010 SMP SP130 /P/X64/Windows Server/ase157sp13x/3819/64-bit/OPT/Fri Aug 22 22:28:21 2014:
    -- testing with tinyint
    1> use demo_db
    1>
    2> CREATE TABLE #table1
    3>     (   PK          char(8) null,
    4>         FileDate        date,
    5> --        changed         bit
    6>  changed tinyint
    7>     )
    8>
    9> CREATE TABLE partitioned  (
    10>   PK         char(8) NOT NULL,
    11>   ValidFrom     date DEFAULT current_date() NOT NULL,
    12>   ValidTo       date DEFAULT '31-Dec-9999' NOT NULL
    13>   )
    14>
    15> LOCK DATAROWS
    16>   PARTITION BY RANGE (ValidTo)
    17>   ( p2014 VALUES <= ('20141231') ON [default],
    18>   p2015 VALUES <= ('20151231') ON [default],
    19>   pMAX VALUES <= (MAX) ON [default]
    20>         )
    21>
    22> CREATE UNIQUE CLUSTERED INDEX pk
    23>   ON partitioned(PK, ValidFrom, ValidTo)
    24>   LOCAL INDEX
    25>
    26> CREATE TABLE unpartitioned  (
    27>   PK         char(8) NOT NULL,
    28>   ValidFrom     date DEFAULT current_date() NOT NULL,
    29>   ValidTo       date DEFAULT '31-Dec-9999' NOT NULL,
    30>   )
    31> LOCK DATAROWS
    32>
    33> CREATE UNIQUE CLUSTERED INDEX pk
    34>   ON unpartitioned(PK, ValidFrom, ValidTo)
    35>
    36> insert partitioned
    37> select "ET00jPzh", "Jan  7 2015", "Dec 31 9999"
    38>
    39> insert unpartitioned
    40> select "ET00jPzh", "Jan  7 2015", "Dec 31 9999"
    41>
    42> insert #table1
    43> select "ET00jPzh", "Jan 15 2015", 1
    44> union all
    45> select "ET00jPzh", "Jan 15 2015", 1
    (1 row affected)
    (1 row affected)
    (2 rows affected)
    1>
    2> update partitioned
    3> set    ValidTo = dateadd(dd,-1,FileDate)
    4> from   #table1 t
    5> inner  join partitioned p on (p.PK = t.PK)
    6> where  p.ValidTo = '99991231'
    7> and    t.changed = 1
    Msg 2601, Level 14, State 6:
    Server 'PHILLY_ASE', Line 2:
    Attempt to insert duplicate key row in object 'partitioned' with unique index 'pk'
    Command has been aborted.
    (0 rows affected)
    1>
    2> update unpartitioned
    3> set    ValidTo = dateadd(dd,-1,FileDate)
    4> from   #table1 t
    5> inner  join unpartitioned u on (u.PK = t.PK)
    6> where  u.ValidTo = '99991231'
    7> and    t.changed = 1
    (1 row affected)
    1>
    2> drop table #table1
    1>
    2> drop table partitioned
    3> drop table unpartitioned
    -- duplicating with 'int'
    1> use demo_db
    1>
    2> CREATE TABLE #table1
    3>     (   PK          char(8) null,
    4>         FileDate        date,
    5> --        changed         bit
    6>  changed int
    7>     )
    8>
    9> CREATE TABLE partitioned  (
    10>   PK         char(8) NOT NULL,
    11>   ValidFrom     date DEFAULT current_date() NOT NULL,
    12>   ValidTo       date DEFAULT '31-Dec-9999' NOT NULL
    13>   )
    14>
    15> LOCK DATAROWS
    16>   PARTITION BY RANGE (ValidTo)
    17>   ( p2014 VALUES <= ('20141231') ON [default],
    18>   p2015 VALUES <= ('20151231') ON [default],
    19>   pMAX VALUES <= (MAX) ON [default]
    20>         )
    21>
    22> CREATE UNIQUE CLUSTERED INDEX pk
    23>   ON partitioned(PK, ValidFrom, ValidTo)
    24>   LOCAL INDEX
    25>
    26> CREATE TABLE unpartitioned  (
    27>   PK         char(8) NOT NULL,
    28>   ValidFrom     date DEFAULT current_date() NOT NULL,
    29>   ValidTo       date DEFAULT '31-Dec-9999' NOT NULL,
    30>   )
    31> LOCK DATAROWS
    32>
    33> CREATE UNIQUE CLUSTERED INDEX pk
    34>   ON unpartitioned(PK, ValidFrom, ValidTo)
    35>
    36> insert partitioned
    37> select "ET00jPzh", "Jan  7 2015", "Dec 31 9999"
    38>
    39> insert unpartitioned
    40> select "ET00jPzh", "Jan  7 2015", "Dec 31 9999"
    41>
    42> insert #table1
    43> select "ET00jPzh", "Jan 15 2015", 1
    44> union all
    45> select "ET00jPzh", "Jan 15 2015", 1
    (1 row affected)
    (1 row affected)
    (2 rows affected)
    1>
    2> update partitioned
    3> set    ValidTo = dateadd(dd,-1,FileDate)
    4> from   #table1 t
    5> inner  join partitioned p on (p.PK = t.PK)
    6> where  p.ValidTo = '99991231'
    7> and    t.changed = 1
    Msg 2601, Level 14, State 6:
    Server 'PHILLY_ASE', Line 2:
    Attempt to insert duplicate key row in object 'partitioned' with unique index 'pk'
    Command has been aborted.
    (0 rows affected)
    1>
    2> update unpartitioned
    3> set    ValidTo = dateadd(dd,-1,FileDate)
    4> from   #table1 t
    5> inner  join unpartitioned u on (u.PK = t.PK)
    6> where  u.ValidTo = '99991231'
    7> and    t.changed = 1
    (1 row affected)
    1>
    2> drop table #table1
    1>
    2> drop table partitioned
    3> drop table unpartitioned

  • Compare and update the same Column

    Hi ,
    SQL&gt; select * from
    v$version;
    BANNER
    Oracle Database 10g Express
    Edition Release 10.2.0.1.0 - Product
    PL/SQL Release 10.2.0.1.0 -
    Production
    CORE 10.2.0.1.0 Production
    TNS for 32-bit Windows:
    Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 -
    Production
    I am having an issue in Updating the column in a Table.......
    What i am trying to do is ...Compare 2 column and then update one of the compared column....
    Table 1 Name: TEST1 _
    bq. LNID \\ NEW_AN8 \\ OLD_AN8 \\ OLD_DESC \\ 2 \\ 123002 \\ 100001 \\ C2370 \\ 125846 \\ 100001 CS24 \\ 123024 \\ 100028 \\ C2392 \\ 125868 \\ 100028 CS25 \\ 123025 \\ 100036 C2393 \\ 125869 \\ 100036 CS26 123026 \\ 100116 \\ C2394 \\ 125870 \\ 100116 \\ CS
    TEST2_
    SZAN8     SZAN82     SZAN86     SZAT1
    123,002 100,001 100,001 C
    125,846 100,001 100,001 CS
    123,024 100,028 100,028 C
    125,868 100,028 100,028 CS
    125,869 100,036 100,036 CS
    123,025 100,036 100,036 C
    125,870 100,116 100,116 CS
    123,026 100,116 100,116 C
    I wanted to update SZAN82 of TEST2 table..... based on the SZAT1 value ...
    I shud be able to pick the CS type record first then the C type record and the SZAN82 value and check whether it is present in the TEST1 table if it present then I shud update the AN82 value,,
    UPDATE LPLSCHEMA.LPL_F0101Z2_CUSTOMER C SET (SZAN82)=
    (SELECT NEW_AN8 FROM LPL_CROSS_CUSTOMER B,LPL_F0101Z2_CUSTOMER C WHERE C.SZAT1='CS' AND B.OLD_DESC='CS'and C.szan82=B.old_an8);
    I tried like tis .... i got an Error sub query more than one rows ...
    Thanks in Advance !!
    Ananda
    Edited by: Ananda on Jan 2, 2009 6:30 PM
    Edited by: Ananda on Jan 2, 2009 6:30 PM
    Edited by: Ananda on Jan 2, 2009 6:34 PM
    Edited by: Ananda on Jan 2, 2009 6:37 PM

    Or:
    UPDATE  LPLSCHEMA.LPL_F0101Z2_CUSTOMER C
      SET   SZAN82 = (
                      SELECT  NEW_AN8
                        FROM  LPL_CROSS_CUSTOMER B
                        WHERE C.SZAT1='CS'
                        AND B.OLD_DESC='CS'
                        AND C.szan82=B.old_an8
      WHERE (SZAT1,szan82) IN (
                                SELECT  'CS',
                                        old_an8
                                  FROM  LPL_CROSS_CUSTOMER B
                                  WHERE B.OLD_DESC='CS'
                              );Or, depending on your version and table structure:
    UPDATE  (
             SELECT  C.SZAN82,
                     B.NEW_AN8
               FROM  LPL_CROSS_CUSTOMER B,
                     LPL_F0101Z2_CUSTOMER c
                     WHERE C.SZAT1='CS'
                     AND B.OLD_DESC='CS'
                     AND C.szan82=B.old_an8
      SET   SZAN82 = NEW_AN8
    /SY.

Maybe you are looking for