Updating a CLOB column using C++ with ATL

Hello,
I have tables with a single CLOB or BLOB colum with the rest of the columns of type VARCHAR2.
I'm getting a result of E_FAIL when updating a single row, for which I'm attempting to change one of the VARCHAR2 columns and the CLOB column. If I set the status for the CLOB column to DBSTATUS_S_IGNORE, the update succeeds (for the other column). If I set the status for all other columns to DBSTATUS_S_IGNORE and the status for the CLOB column to DBSTATUS_S_OK, it still fails.
If I use a SQL Server data source with the same schema and the same C++ code, the original update succeeds.
The length of the data I'm attempting to store is 11487 characters.
As near as I can tell, the Oracle provider does support this kind of functionality. Perhaps there is some coding variation needed for the Oracle data source. I have so far been unable to find a suitable example (or any code example for the Oracle provider using C++/ATL).
I'm using Oracle 9i Release 2 with the latest OLE DB provider (9.2.0.2.0).
Thanks,
Daniel E. Hale
[email protected]

Some additional information on the problem:
I was using the ISequentialStream interface
with a Dynamic Accessor when the problem
occurred.
Since then I've tried using a SQL command to do
the update... and I've found the 11487 characters
is too long... I get a maximum length error when
I try the command in SQL+. (BTW, SQL Server works
fine with the long command.)
I doubt that the length is the reason for the failure
of the update using the ISequentialStream interface.
I'm just looking for something that works. Right
now, the only thing that works is not to do the
update at all, but instead do delete/insert. I'd
like to find a better solution than that.
-Daniel E. Hale

Similar Messages

  • 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.

  • 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!

  • SQL LOADER: how to load CLOB column using stored function

    Hi,
    I am a newbie of sql loader. Everything seems to be fine until I hit a
    road block - the CLOB column type. I want to load data into the clob
    column using a stored function. I need to do some manipulation on the
    data before it gets saved to that column. But I got this error when I
    run the sql loader.
    SQL*Loader-309: No SQL string allowed as part of "DATA" field
    specification
    DATA is my CLOB type column.
    here is the content of the control file:
    LOAD DATA
    INFILE 'test.csv'
    BADFILE 'test.bad'
    DISCARDFILE 'test.dsc'
    REPLACE
    INTO TABLE test_table
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    TRAILING NULLCOLS
    codeid          BOUNDFILLER,
    reason          BOUNDFILLER,
    Checkstamp     "to_date(:CHECKSTAMP, 'mm/dd/yyyy')",
    "DATA"          "GetContent(:codeid, :reason)"
    All references are suggesting to use a file to load data on
    CLOB column but I want to use a function in which it generates
    the content to be saved into the column.
    Any help is greatly appreciated.
    Thanks,
    Baldwin
    MISICompany

    *** Duplicate Post ... Please Ignore ***

  • 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

  • ORA-22275 inserting into the CLOB column using ODBC input parameters

    Hi all,
    I'm having problem with INSERT into the CLOB column via bound input parameters.
    After calling SQLExecDirect() I'm getting following error:
    [Oracle][ODBC][Ora]ORA-22275: invalid LOB locator specified
    Adding defaults to the table definitions does not help. If I embed parameter values into the SQL statement - everything works just fine.
    I use Oracle 9.2 with latest Oracle ODBC driver 9.2.0.4 under Windows XP.
    Any ideas appreciated...
    Vlad
    Code looks like this:
    SQLBindParameter(hstmt,1,...);
    SQLBindParameter(hstmt,2,...);
    SQLBindParameter(hstmt,3,...);
    SQLExecDirect(hstmt,...);
    SQL statement looks like this:
    insert into tst_table (id,str_fld,clob_fld1,clob_fld2) values (50, ? , ? , ?)
    Table looks like this:
    CREATE TABLE tst_table (
         id          number (10,0)     NOT NULL ,
         str_fld          nvarchar2 (50)     NOT NULL ,
         clob_fld1     nclob          NOT NULL ,
         clob_fld2     nclob          NOT NULL ,
         CONSTRAINT PK_tst_table PRIMARY KEY
              id
    I tried to add defaults to the table, but result is the same:
    CREATE TABLE tst_table (
         id          number (10,0)               NOT NULL ,
         str_fld          nvarchar2 (50)               NOT NULL ,
         clob_fld1     nclob     default EMPTY_CLOB()     NOT NULL ,
         clob_fld2     nclob     default EMPTY_CLOB()     NOT NULL ,
         CONSTRAINT PK_tst_table PRIMARY KEY
              id

    You need to provide the data at execution time (i.e. SQL_LEN_DATA_AT_EXEC(0) in the SQLBindParameter followed by a series of SQLPutData calls). If you go to Metalink
    Top Tech Docs | Oracle ODBC Driver | Scripts & Sample Code
    has some sample code that shows you how to do this.
    Justin

  • Data updated by another user when trying to update a CLOB column value

    I just recently upgraded to version 1.2.1 (Build MAIN-32.13), and since I have, I am now getting this message when editing the text within a CLOB column of a table:
    Data you attempted to update was updated by another user. You will have to rollback and refresh the table. Rollback now?
    I am confident that no one else is in the table, as I am the only one connected to this DB right now. Also, I have shut down SQL Developer completely and restarted it. Again, I get the same error.
    Also, the CLOB is less than 2500 characters, so it's not a limitation with the 4k chars.
    I really can't update it easily via SQL because there is formatting in the text (carriage
    returns, etc).
    Any ideas? Any workarounds?
    Thanks,
    -Vikki

    OK. A few things I've noticed as I've played with it more.
    1 - It does not happen on EVERY update to a CLOB. (Some save successfully.)
    2 - Once I get it on a CLOB, it seems to happen then on every subsequent CLOB.
    3 - It's not just one table -- several tables do it.
    4 - It's not even just updating CLOB columns -- I just had it happen on a varchar2 column where there is also a CLOB in the table.
    Thank you for the instructions on how to see the debug console. Here is what I got as an exception (and sorry for the line wrapping):
    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.S
    tring
    at oracle.dbtools.raptor.controls.celleditor.ResultSetCellEditor$1.actio
    nPerformed(ResultSetCellEditor.java:140)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:18
    49)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
    a:2169)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
    .java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
    istener.java:234)
    at java.awt.Component.processMouseEvent(Component.java:5488)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
    read.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.S
    tring
    at oracle.dbtools.raptor.controls.celleditor.ResultSetCellEditor$1.actio
    nPerformed(ResultSetCellEditor.java:140)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:18
    49)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
    a:2169)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
    .java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
    istener.java:234)
    at java.awt.Component.processMouseEvent(Component.java:5488)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
    read.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    reloadBuffers(): 56 nodes checked in 0.001488707 second(s)
    reloadBuffers(): 56 nodes checked in 0.001101633 second(s)
    reloadBuffers(): 56 nodes checked in 8.70581E-4 second(s)
    reloadBuffers(): 56 nodes checked in 0.00159078 second(s)

  • Exception while updating a clob value using dbms_lob.fragment_insert

    Hi,
    Here is the query
    procedure tempProc(str3 in varchar2) is
    QI CLOB;
    -- LOB(QI) STORE AS securefile ;
    v_cursor refcursor;
    str varchar2(50);
    i number default '30';
    begin
    open v_cursor for select b.OCEAN_RATE_XML.getClobVal() from TNMAB_OCEAN_RATE_XML B
    WHERE (XMLCast(XMLQuery('declare default element namespace "http://com.oocl.schema.tnm.agreementbuilder"; (: :) /OceanOfferRate/ObjectID'
    PASSING B.OCEAN_RATE_XML RETURNING CONTENT) AS NUMBER(20))) = 200000000000050;
    fetch v_cursor into QI;
    close v_cursor;
    dbms_output.put_line('abcds'||DBMS_LOB.getlength(QI));
    dbms_lob.fragment_insert(QI,3,DBMS_LOB.getlength(QI)-17,'<abc/>');
    dbms_output.put_line('Done insert');
    DBMS_LOB.READ (QI, i, DBMS_LOB.getlength(QI)-i, str);
    --DBMS_LOB.READ(QI,20,DBMS_LOB.getlength(QI)-20,str);
    dbms_output.put_line('Doem read');
    dbms_output.put_line(str);
    end tempProc;
    I am getting the below exceptionError report:
    ORA-43856: Unsupported LOB type for SECUREFILE LOB operation
    ORA-06512: at "SYS.DBMS_LOB", line 1076
    ORA-06512: at "TNM_PLSQL.TNM_AB_QI_UPDT_PKG", line 377
    ORA-06512: at line 5
    ORA-06512: at line 9
    <OceanOfferRate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://com.oocl.schema.tnm.agreementbuilder">
    <ObjectID>200000000000050</ObjectID>
    <RateID>2</RateID>
    <AgreementID>00000002</AgreementID>
    <StartingVersion>0</StartingVersion>
    <EndingVersion>0</EndingVersion>
    <EffectiveFrom>2010-05-16T00:00:00.000000</EffectiveFrom>
    <EffectiveTo>2010-06-30T00:00:00.000000</EffectiveTo>
    <RateStatus>QuoteExpired</RateStatus>
    <ApprovalStatus>Approved</ApprovalStatus>
    <Flags>3</Flags>
    <Tariffs>015</Tariffs>
    <BaseRates>
    <SizeType>20GP</SizeType>
    <Amount>65</Amount>
    <Currency>USD</Currency>
    <EffectiveFrom>2010-05-16T00:00:00.000000</EffectiveFrom>
    <EffectiveTo>2010-06-30T00:00:00.000000</EffectiveTo>
    <Flags>0</Flags>
    </BaseRates>
    <BaseRates>
    <SizeType>40GP</SizeType>
    <Amount>100</Amount>
    <Currency>USD</Currency>
    <EffectiveFrom>2010-05-16T00:00:00.000000</EffectiveFrom>
    <EffectiveTo>2010-06-30T00:00:00.000000</EffectiveTo>
    <Flags>0</Flags>
    </BaseRates>
    <BaseRates>
    <SizeType>40HQ</SizeType>
    <Amount>100</Amount>
    <Currency>USD</Currency>
    <EffectiveFrom>2010-05-16T00:00:00.000000</EffectiveFrom>
    <EffectiveTo>2010-06-30T00:00:00.000000</EffectiveTo>
    <Flags>0</Flags>
    </BaseRates>
    <ShippingPartyGroupName>Default</ShippingPartyGroupName>
    <CustomerContactGroupName>Default</CustomerContactGroupName>
    <NamedCustomerGroupName>Default</NamedCustomerGroupName>
    <LastSentDate>2010-06-14T22:42:48.536000</LastSentDate>
    <ValidityDays>30</ValidityDays>
    <ValidityExpirationDate>2010-06-30T00:00:00.000000</ValidityExpirationDate>
    <GuidelineRateReference>
    <Trunk>
    <RateID>100001510668470</RateID>
    <SurchargeIDs>684172719752758</SurchargeIDs>
    <SurchargeIDs>626856918161564</SurchargeIDs>
    <SurchargeIDs>680028613161439</SurchargeIDs>
    <SurchargeIDs>679555629913553</SurchargeIDs>
    <SurchargeIDs>673382151283681</SurchargeIDs>
    <SurchargeIDs>679789705628181</SurchargeIDs>
    <SurchargeIDs>653835218283772</SurchargeIDs>
    <SurchargeIDs>653955477367768</SurchargeIDs>
    <SurchargeIDs>653955477367759</SurchargeIDs>
    </Trunk>
    </GuidelineRateReference>
    <CreatedOn>2010-05-16T13:40:29.201344</CreatedOn>
    <CreatedBy>KRISHSA</CreatedBy>
    <SalesPerson>COOKBR</SalesPerson>
    <SalesOffice>PHE</SalesOffice>
    <LastUpdated>2010-06-30T00:13:06.000000</LastUpdated>
    <LastUpdatedBy>TNM_APPLN</LastUpdatedBy>
    <Origins>
    <ID_Wrappers>
    <Value>100000000026067</Value>
    </ID_Wrappers>
    <ID_Wrappers>
    <Value>100000000008923</Value>
    </ID_Wrappers>
    <ID_Wrappers>
    <Value>100000000024173</Value>
    </ID_Wrappers>
    </Origins>
    <Destinations>
    <ID_Wrappers>
    <Value>100000000008923</Value>
    </ID_Wrappers>
    <ID_Wrappers>
    <Value>100000000024173</Value>
    </ID_Wrappers>
    <ID_Wrappers>
    <Value>100000000013006</Value>
    </ID_Wrappers>
    <ID_Wrappers>
    <Value>100000000046704</Value>
    </ID_Wrappers>
    </Destinations>
    <DeliveryMode>YY</DeliveryMode>
    <TradeLane>IAT</TradeLane>
    <Commodity>
    <Description>Cotton for test</Description>
    <CargoNatureGroup>32</CargoNatureGroup>
    </Commodity>
    <RateLevel>1</RateLevel>
    </OceanOfferRate>
    Any advise if there is any other ways to update the clob with additional information at the end of the XML before </OceanOfferRate> ?

    A quick example illustrating what I mean :
    Settings
    SQL> create table department_xml (
      2    xmldoc xmltype
      3  , depid  number(4) as
      4    (
      5      xmlcast(
      6        xmlquery('declare default element namespace "http://some.namespace.org"; (: :)
      7                  /Department/@ID' passing xmldoc returning content)
      8        as number(4)
      9      )
    10    ) virtual
    11  )
    12  xmltype xmldoc store as binary xml
    13  ;
    Table created.
    SQL> create unique index department_xml_depid_uix on department_xml (depid);
    Index created.
    SQL> insert into department_xml (xmldoc)
      2  select xmlelement("Department",
      3           xmlattributes('http://some.namespace.org' as "xmlns"
      4                        , department_id as "ID")
      5         , xmlforest(
      6             d.department_name as "departmentName"
      7           , d.manager_id as "managerID"
      8           , xmlforest(
      9               l.street_address as "street"
    10             , l.postal_code as "zipcode"
    11             , l.city as "city"
    12             , l.state_province as "state"
    13             , c.country_name as "country"
    14             ) as "address"
    15           )
    16         )
    17  from hr.departments d
    18       join hr.locations l on l.location_id = d.location_id
    19       join hr.countries c on c.country_id = l.country_id
    20  ;
    27 rows created.
    SQL> commit;
    Commit complete.
    Sample document
    SQL> select xmlserialize(document xmldoc as clob indent) from department_xml where depid = 50;
    XMLSERIALIZE(DOCUMENTXMLDOCASCLOBINDENT)
    <Department xmlns="http://some.namespace.org" ID="50">
      <departmentName>Shipping</departmentName>
      <managerID>121</managerID>
      <address>
        <street>2011 Interiors Blvd</street>
        <zipcode>99236</zipcode>
        <city>South San Francisco</city>
        <state>California</state>
        <country>United States of America</country>
      </address>
    </Department>
    Updating each doc with the list of employees from the corresponding department
    SQL> UPDATE department_xml d
      2  SET d.xmldoc =
      3      insertChildXMLBefore(
      4        d.xmldoc
      5      , '/Department'
      6      , 'address'
      7      , (
      8          select xmlelement("employees",
      9                   xmlagg(
    10                     xmlelement("employee",
    11                       xmlattributes(e.employee_id as "ID")
    12                     , xmlforest( e.first_name || ' ' || e.last_name as "employeeName"
    13                                , e.hire_date as "hireDate"
    14                                , e.salary as "salary" )
    15                     )
    16                     order by e.employee_id
    17                   )
    18                 )
    19          from hr.employees e
    20          where e.department_id = d.depid
    21        )
    22      , 'xmlns="http://some.namespace.org"'
    23      )
    24  ;
    27 rows updated.
    Checking...
    SQL> select xmlserialize(document xmldoc as clob indent) from department_xml where depid = 50;
    XMLSERIALIZE(DOCUMENTXMLDOCASCLOBINDENT)
    <Department xmlns="http://some.namespace.org" ID="50">
      <departmentName>Shipping</departmentName>
      <managerID>121</managerID>
      <employees>
        <employee ID="120">
          <employeeName>Matthew Weiss</employeeName>
          <hireDate>2004-07-18</hireDate>
          <salary>8000</salary>
        </employee>
        <employee ID="121">
          <employeeName>Adam Fripp</employeeName>
          <hireDate>2005-04-10</hireDate>
          <salary>8200</salary>
        </employee>
        <employee ID="122">
          <employeeName>Payam Kaufling</employeeName>
          <hireDate>2003-05-01</hireDate>
          <salary>7900</salary>
        </employee>
        <employee ID="123">
          <employeeName>Shanta Vollman</employeeName>
          <hireDate>2005-10-10</hireDate>
          <salary>6500</salary>
        </employee>
        <employee ID="124">
          <employeeName>Kevin Mourgos</employeeName>
          <hireDate>2007-11-16</hireDate>
          <salary>5800</salary>
        </employee>
        <employee ID="125">
          <employeeName>Julia Nayer</employeeName>
          <hireDate>2005-07-16</hireDate>
          <salary>3200</salary>
        </employee>
        <employee ID="126">
          <employeeName>Irene Mikkilineni</employeeName>
          <hireDate>2006-09-28</hireDate>
          <salary>2700</salary>
        </employee>
        <employee ID="127">
          <employeeName>James Landry</employeeName>
          <hireDate>2007-01-14</hireDate>
          <salary>2400</salary>
        </employee>
        <employee ID="128">
          <employeeName>Steven Markle</employeeName>
          <hireDate>2008-03-08</hireDate>
          <salary>2200</salary>
        </employee>
        <employee ID="129">
          <employeeName>Laura Bissot</employeeName>
          <hireDate>2005-08-20</hireDate>
          <salary>3300</salary>
        </employee>
        <employee ID="130">
          <employeeName>Mozhe Atkinson</employeeName>
          <hireDate>2005-10-30</hireDate>
          <salary>2800</salary>
        </employee>
        <employee ID="131">
          <employeeName>James Marlow</employeeName>
          <hireDate>2005-02-16</hireDate>
          <salary>2500</salary>
        </employee>
        <employee ID="132">
          <employeeName>TJ Olson</employeeName>
          <hireDate>2007-04-10</hireDate>
          <salary>2100</salary>
        </employee>
        <employee ID="133">
          <employeeName>Jason Mallin</employeeName>
          <hireDate>2004-06-14</hireDate>
          <salary>3300</salary>
        </employee>
        <employee ID="134">
          <employeeName>Michael Rogers</employeeName>
          <hireDate>2006-08-26</hireDate>
          <salary>2900</salary>
        </employee>
        <employee ID="135">
          <employeeName>Ki Gee</employeeName>
          <hireDate>2007-12-12</hireDate>
          <salary>2400</salary>
        </employee>
        <employee ID="136">
          <employeeName>Hazel Philtanker</employeeName>
          <hireDate>2008-02-06</hireDate>
          <salary>2200</salary>
        </employee>
        <employee ID="137">
          <employeeName>Renske Ladwig</employeeName>
          <hireDate>2003-07-14</hireDate>
          <salary>3600</salary>
        </employee>
        <employee ID="138">
          <employeeName>Stephen Stiles</employeeName>
          <hireDate>2005-10-26</hireDate>
          <salary>3200</salary>
        </employee>
        <employee ID="139">
          <employeeName>John Seo</employeeName>
          <hireDate>2006-02-12</hireDate>
          <salary>2700</salary>
        </employee>
        <employee ID="140">
          <employeeName>Joshua Patel</employeeName>
          <hireDate>2006-04-06</hireDate>
          <salary>2500</salary>
        </employee>
        <employee ID="141">
          <employeeName>Trenna Rajs</employeeName>
          <hireDate>2003-10-17</hireDate>
          <salary>3500</salary>
        </employee>
        <employee ID="142">
          <employeeName>Curtis Davies</employeeName>
          <hireDate>2005-01-29</hireDate>
          <salary>3100</salary>
        </employee>
        <employee ID="143">
          <employeeName>Randall Matos</employeeName>
          <hireDate>2006-03-15</hireDate>
          <salary>2600</salary>
        </employee>
        <employee ID="144">
          <employeeName>Peter Vargas</employeeName>
          <hireDate>2006-07-09</hireDate>
          <salary>2500</salary>
        </employee>
        <employee ID="180">
          <employeeName>Winston Taylor</employeeName>
          <hireDate>2006-01-24</hireDate>
          <salary>3200</salary>
        </employee>
        <employee ID="181">
          <employeeName>Jean Fleaur</employeeName>
          <hireDate>2006-02-23</hireDate>
          <salary>3100</salary>
        </employee>
        <employee ID="182">
          <employeeName>Martha Sullivan</employeeName>
          <hireDate>2007-06-21</hireDate>
          <salary>2500</salary>
        </employee>
        <employee ID="183">
          <employeeName>Girard Geoni</employeeName>
          <hireDate>2008-02-03</hireDate>
          <salary>2800</salary>
        </employee>
        <employee ID="184">
          <employeeName>Nandita Sarchand</employeeName>
          <hireDate>2004-01-27</hireDate>
          <salary>4200</salary>
        </employee>
        <employee ID="185">
          <employeeName>Alexis Bull</employeeName>
          <hireDate>2005-02-20</hireDate>
          <salary>4100</salary>
        </employee>
        <employee ID="186">
          <employeeName>Julia Dellinger</employeeName>
          <hireDate>2006-06-24</hireDate>
          <salary>3400</salary>
        </employee>
        <employee ID="187">
          <employeeName>Anthony Cabrio</employeeName>
          <hireDate>2007-02-07</hireDate>
          <salary>3000</salary>
        </employee>
        <employee ID="188">
          <employeeName>Kelly Chung</employeeName>
          <hireDate>2005-06-14</hireDate>
          <salary>3800</salary>
        </employee>
        <employee ID="189">
          <employeeName>Jennifer Dilly</employeeName>
          <hireDate>2005-08-13</hireDate>
          <salary>3600</salary>
        </employee>
        <employee ID="190">
          <employeeName>Timothy Gates</employeeName>
          <hireDate>2006-07-11</hireDate>
          <salary>2900</salary>
        </employee>
        <employee ID="191">
          <employeeName>Randall Perkins</employeeName>
          <hireDate>2007-12-19</hireDate>
          <salary>2500</salary>
        </employee>
        <employee ID="192">
          <employeeName>Sarah Bell</employeeName>
          <hireDate>2004-02-04</hireDate>
          <salary>4000</salary>
        </employee>
        <employee ID="193">
          <employeeName>Britney Everett</employeeName>
          <hireDate>2005-03-03</hireDate>
          <salary>3900</salary>
        </employee>
        <employee ID="194">
          <employeeName>Samuel McCain</employeeName>
          <hireDate>2006-07-01</hireDate>
          <salary>3200</salary>
        </employee>
        <employee ID="195">
          <employeeName>Vance Jones</employeeName>
          <hireDate>2007-03-17</hireDate>
          <salary>2800</salary>
        </employee>
        <employee ID="196">
          <employeeName>Alana Walsh</employeeName>
          <hireDate>2006-04-24</hireDate>
          <salary>3100</salary>
        </employee>
        <employee ID="197">
          <employeeName>Kevin Feeney</employeeName>
          <hireDate>2006-05-23</hireDate>
          <salary>3000</salary>
        </employee>
        <employee ID="198">
          <employeeName>Donald OConnell</employeeName>
          <hireDate>2007-06-21</hireDate>
          <salary>2600</salary>
        </employee>
        <employee ID="199">
          <employeeName>Douglas Grant</employeeName>
          <hireDate>2008-01-13</hireDate>
          <salary>2600</salary>
        </employee>
      </employees>
      <address>
        <street>2011 Interiors Blvd</street>
        <zipcode>99236</zipcode>
        <city>South San Francisco</city>
        <state>California</state>
        <country>United States of America</country>
      </address>
    </Department>

  • Problem in Loading data for clob column using sql ldr

    Hi,
    I am having problem in loading data for tables having clob column.
    Could anyone help me in correcting the below script for ctrl file inorder to load the data which is in mentioned format.
    Any help really appreciated.
    Table Script
    Create table samp
    no number,
    col1 clob,
    col2 clob
    Ctrl File
    options (skip =1)
    load data
    infile 'c:\1.csv'
    Replace into table samp
    fields terminated by ","
    trailing nullcols
    no,
    col1 Char(100000000) ,
    col2 Char(100000000) enclosed by '"' and '"'
    Data File(1.csv)
    1,asdf,"assasadsdsdsd""sfasdfadf""sdsdsa,ssfsf"
    2,sfjass,"dksadk,kd,ss""dfdfjkdjfdk""sasfjaslaljs"
    Error Encountered
    ORA-01461: can bind a LONG value only for insert into a LONG column
    Table sampThanks in advance

    I can't reproduce it on my 10.2.0.4.0. CTL file:
    load data
    INFILE *
    Replace into table samp
    fields terminated by ","
    trailing nullcols
    no,
    col1 Char(100000000) ,
    col2 Char(100000000) enclosed by '"' and '"'
    BEGINDATA
    1,asdf,"assasadsdsdsd""sfasdfadf""sdsdsa,ssfsf"
    2,sfjass,"dksadk,kd,ss""dfdfjkdjfdk""sasfjaslaljs"Loading:
    SQL> Create table samp
      2  (
      3  no number,
      4  col1 clob,
      5  col2 clob
      6  );
    Table created.
    SQL> host sqlldr scott/tiger control=c:\temp\samp.ctl log=c:\temp\samp.log
    SQL> select * from samp
      2  /
            NO
    COL1
    COL2
             1
    asdf
    assasadsdsdsd"sfasdfadf"sdsdsa,ssfsf
             2
    sfjass
    dksadk,kd,ss"dfdfjkdjfdk"sasfjaslaljs
            NO
    COL1
    COL2
    SQL> SY.

  • Update multiple rows & columns using a single statement

    I have the following table with tablename - emp
    first_name last_name age
    aaa bbb 31
    56
    78
    ggg hhh 36
    2nd & 3rd row contain null values (no data) in first_name & last_name column . I want to update those two rows with data using a single statement. How do I do it?
    I was thinking may be something like the following:-
    UPDATE emp
    SET first_name= , last_name=
    CASE
    WHEN age = 56 THEN 'ccc', 'ddd'
    WHEN age = 78 THEN 'eee', 'fff'
    ELSE first_name, last_name
    END
    -----------------------------------------------

    Can you give an example of a nested decode statement.
    test@ora>
    test@ora>
    test@ora> --
    test@ora> drop table t;
    Table dropped.
    test@ora> create table t as
      2  select rownum x, cast(null as varchar2(10)) y from all_objects
      3  where rownum <= 10;
    Table created.
    test@ora>
    test@ora> select x, y from t;
             X Y
             1
             2
             3
             4
             5
             6
             7
             8
             9
            10
    10 rows selected.
    test@ora>
    test@ora> -- You want to change the values of y to 'a' through 'j' for x = 1 through 10
    test@ora> -- and y = 'X' otherwise
    test@ora> --
    test@ora> -- Let's say the limit on the number of components were 12
    test@ora> -- Then your decode statement would've been:
    test@ora> --
    test@ora> update t
      2  set y = decode(x,
      3                 1, 'a',
      4                 2, 'b',
      5                 3, 'c',
      6                 4, 'd',
      7                 5, 'e',
      8                    'f');
    10 rows updated.
    test@ora>
    test@ora>
    test@ora> select x, y from t;
             X Y
             1 a
             2 b
             3 c
             4 d
             5 e
             6 f
             7 f
             8 f
             9 f
            10 f
    10 rows selected.
    test@ora>
    test@ora> -- As you can see you are unable to:
    test@ora> --
    test@ora> -- change y to 'g' if x = 7
    test@ora> -- change y to 'h' if x = 8
    test@ora> -- change y to 'i' if x = 9
    test@ora> -- change y to 'j' if x = 10
    test@ora> -- change y to 'X' otherwise
    test@ora> --
    test@ora>
    test@ora> -- What you would do then is -
    test@ora> -- (i)  Let the 11 components remain as they are and
    test@ora> -- (ii) Introduce a nested decode function *AS THE 12TH COMPONENT*
    test@ora> --
    test@ora>
    test@ora> rollback;
    Rollback complete.
    test@ora>
    test@ora> --
    test@ora> update t
      2  set y = decode(x,
      3                 1, 'a',
      4                 2, 'b',
      5                 3, 'c',
      6                 4, 'd',
      7                 5, 'e',
      8                 decode(x,
      9                        6,  'f',
    10                        7,  'g',
    11                        8,  'h',
    12                        9,  'i',
    13                        10, 'j',
    14                            'X')
    15                );
    10 rows updated.
    test@ora>
    test@ora> select x, y from t;
             X Y
             1 a
             2 b
             3 c
             4 d
             5 e
             6 f
             7 g
             8 h
             9 i
            10 j
    10 rows selected.
    test@ora>
    test@ora>HTH
    isotope
    Extrapolate that to 255 components and you get 254 + 255 = 509 components. And so on...
    Message was edited by:
    isotope

  • Updating a blob column using a ResultSet

    Hi,
    I'm using jdeveloper 3.2.3 with a 9i database and the smartupload component to save file in a blob column.
    I'm using the following code
    String sSql0 = "SELECT DOCUMENT.NEXTVAL FROM DUAL";
    oracle.jbo.html.jsp.JSPApplicationRegistry appRegistry = oracle.jbo.html.jsp.JSPApplicationRegistry.getInstance();
    appRegistry.registerApplicationFromPropertyFile(session,"dgpa_bd_BdModule");
    ApplicationModule am = appRegistry.getAppModuleInstance("dgpa_bd_BdModule",request,session);
    ApplicationModuleImpl appMod = (ApplicationModuleImpl)am;
    PreparedStatement stmt1 = appMod.getDBTransaction().createPreparedStatement(sSql0, 1);
    String sSql2 = "SELECT t.* FROM TGTDOCD0 t WHERE IDOCUMEN = 32";
    Statement stmt2 = stmt1.getConnection().createStatement(ResultSet.TYPE_FORWARD_ONLY ,ResultSet.CONCUR_UPDATABLE);
    ResultSet rs = stmt2.executeQuery(sSql2);
    if (rs.next()) {
    // Initialization
    mySmartUpload.initialize(pageContext);
    // Upload
    mySmartUpload.upload();
    // Add the current file in the DB field
    mySmartUpload.getFiles().getFile(0).fileToField(rs,"gdocumen"); //gdocumen is the blob column
    // Update
    rs.updateRow();
    rs.close();
    stmt2.close();
    But when i run the rs.updateRow() i have the follwing error: java.sql.SQLException: ORA-01008
    what's i'm doing wrong?
    Thanks
    RJC

    Where is the image coming from? Are you getting it from a file? User Upload?
    Here is an example using a procedure in Oracle to upload a file to a blob..: http://technologydribble.info/index.php/category/load-file-into-blob/
    Thank you,
    Tony Miller
    Webster, TX
    You know, um…I used to think that it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them? So, now I take great comfort in the general hostility and unfairness of the universe
    Anla-shok Marcus from Babylon 5

  • How to update a CLOB column

    here is my problem.
    I have a table called t_clob as follows:
    SQL> desc t_clob
    Name Null? Type
    C CLOB
    I need to update an existing row with new data (overwrite). The new data is a big java script string with line break, spaces, alignment etc. as follows :
    <form name="abcdeg" accept-charset="utf-8" class="adadad" method="get" action="abd/def" id="asdsdas">
    <label class="abcdef" for="sdfgsdgjgerigh">Search</label>
    <div class="qwert">
    <label class="qwert">
    <input type="radio" name="search_type" value="wweer" id="qwert_trye" onclick="aab(ddgdfgdf);switchTo(''abcd'');" class="radio" <#if localchecked??> ${localchecked}</#if> />Site
    </label>
    <label class="abcdefgh">
    <input type="radio" name="asddfere" value="sssd" id="sdfswererwerew" onclick="abcdefghij(this.value);switchTo(''dfsdfs'');" class="radio" <#if webchecked??> ${sdfsdfsdf}</#if> style="display:none" disabled />
    <input type="radio" name="sdfsdfsdfs" value="fsdfsdfsdf" id="sdfsdfsdfsd" onclick="sdfsdfsdfsdfsdfsdf(this.value);" class="radio" <#if sfsdfsdfsdf??> ${sdfsdfsdfsdf}</#if> /> qwe
    </label>
    <label class="sdfdsfsdfs" style="font-size:8px">
                                  sfsdfsdf <br>
                                  <img src="/sdfsd/sdfsd/sfsdfsd.lfg" alt="Search"/>
                             </label>
                             <label class="qweqwe" style="display:none">
    <input type="radio" name="qwewewqe" value="weqwewq" id="qweqweqwewqeq" onclick="weqweqweqeqweqw(this.value);switchTo(''business'');" class="radio" <#if localbusinesschecked??> ${qweqweweqwe}</#if> />qweqweqw
    </label>
    </div>
    <input type="text" value="<#if q??>${q}</#if>" name="qweqwewqe" id="qweqweqwew" autocomplete="off"/>
    <button type="submit" onclick="qweqweqweqw()">
    <img src="/weqweqw/qweqweqwe.gif" alt="Search" />
    </button>
                        <input type="hidden" value="<#if sm??>${sm}</#if>" id="sm" name="qwe" class="hidden"/>
                        <input type="hidden" value="<#if srm??>${srm}</#if>" id="srm" name="srm" class="hidden"/>
                        <input type="hidden" id="startIndex" name="startIndex" value="<#if start??>${start}</#if>"/>
                        <input type="hidden" id="currentPage" name="currentPage" value="<#if currentpage??>${currentpage}</#if> "/>
    </form>
    <script type="text/javascript">
    window.qweqwewq = "<#if appid??>${appid}</#if>";
    </script>
    <script type="text/javascript" src="http://qwewqeqwewewe/qwewq/qwew/qweqwe.js"></script>
    Currently, we have the normal update statement (updating as a varchr value) in a .sql file. but running the .sql file, throws the following error:
    SP2-0042: unknown command "</script>" - rest of line ignored.
    SP2-0734: unknown command beginning "<script ty..." - rest of line ignored.
    SP2-0734: unknown command beginning "where EXT..." - rest of line ignored.
    For a work-around, we are updating the column through TOAD --> Schema Browser--> Data tab. But, this TOAD way is appearing to be error prone, though it works.
    Can anybody help us in modifying the update statement so that it can directly be run from the .sql file and the spacing/ new lines are preserved.
    Thanks in Advance.

    I'm not 100% sure i understand your problem, is this of any help?
    ME_XE?create table t1 (id number, col1 clob);
    Table created.
    Elapsed: 00:00:00.10
    ME_XE?insert into t1 (id) values (1);
    1 row created.
    Elapsed: 00:00:00.01
    ME_XE?
    ME_XE?declare
      2     my_clob clob default
      3     '
      4     <form name="abcdeg" accept-charset="utf-8" class="adadad" method="get" action="abd/def" id="asdsdas">
      5     <label class="abcdef" for="sdfgsdgjgerigh">Search</label>
      6     <label class="qwert">
      7     <input type="radio" name="search_type" value="wweer" id="qwert_trye" onclick="aab(ddgdfgdf);switchTo(''abcd'');" class="radio" <#if localchecked??> ${localchecked}</#if> />Site
      8     </label>
      9     <label class="abcdefgh">
    10     <input type="radio" name="asddfere" value="sssd" id="sdfswererwerew" onclick="abcdefghij(this.value);switchTo(''dfsdfs'');" class="radio" <#if webchecked??> ${sdfsdfsdf}</#if> style="display:none" disabled />
    11     <input type="radio" name="sdfsdfsdfs" value="fsdfsdfsdf" id="sdfsdfsdfsd" onclick="sdfsdfsdfsdfsdfsdf(this.value);" class="radio" <#if sfsdfsdfsdf??> ${sdfsdfsdfsdf}</#if> /> qwe
    12     </label>
    13     <label class="sdfdsfsdfs" style="font-size:8px">
    14     sfsdfsdf
    15     <img src="/sdfsd/sdfsd/sfsdfsd.lfg" alt="Search"/>
    16     </label>
    17     <label class="qweqwe" style="display:none">
    18     <input type="radio" name="qwewewqe" value="weqwewq" id="qweqweqwewqeq" onclick="weqweqweqeqweqw(this.value);switchTo(''business'');" class="radio" <#if localbusinesschecked??> ${qweqweweqwe}</#if> />qweqweqw
    19     </label>
    20     <input type="text" value="<#if q??>${q}</#if>" name="qweqwewqe" id="qweqweqwew" autocomplete="off"/>
    21     <button type="submit" onclick="qweqweqweqw()">
    22     <img src="/weqweqw/qweqweqwe.gif" alt="Search" />
    23     </button>
    24     <input type="hidden" value="<#if sm??>${sm}</#if>" id="sm" name="qwe" class="hidden"/>
    25     <input type="hidden" value="<#if srm??>${srm}</#if>" id="srm" name="srm" class="hidden"/>
    26     <input type="hidden" id="startIndex" name="startIndex" value="<#if start??>${start}</#if>"/>
    27     <input type="hidden" id="currentPage" name="currentPage" value="<#if currentpage??>${currentpage}</#if> "/>
    28     </form>
    29     <script type="text/javascript">
    30     window.qweqwewq = "<#if appid??>${appid}</#if>";
    31     </script>
    32     <script type="text/javascript" src="http://qwewqeqwewewe/qwewq/qwew/qweqwe.js"></script>
    33     ';
    34
    35  begin
    36     update t1 set col1 = my_clob where id = 1;
    37  end;
    38  /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.03
    ME_XE?

  • Update workflow status column using PowerShell

    Hi All,
    Using PowerShell i want to update the 'Document Status' column as 'Approved'  if it is 'Pending' when it is approved and Task Status is = 'Completed'
    Intermittently my custom workflow is not updating the 'Document Status' column as 'Approved' though it is approved and Task Status is = 'Completed'
    So I thought about running a PowerShell script to work around it.
    Can you please help me for the script.
    Thanks & Regards
    MD.Liakath ali

    Hi,
    The following PowerShell script for your reference:
    $SPWeb = Get-SPWeb http://site
    $List = $SPWeb.Lists["ListName"]
    $items = $List.Items
    foreach ($item in $items) {
    $taskStatus = $item["Task Status"]
    $docStatus = $item["Document Status"]
    if ($taskStatus -eq "Completed" -and $docStatus -eq "Pending")
    $item["Document Status"] = "Approved"
    $item.Update()
    $list.Update()
    $SPWeb.Dispose()
    If the 'Document Status' column is "Approval Status" column and your workflow is an approval workflow, the following articles may be helpful:
    Approval workflow does not update the approval status of items
    https://kanithi.wordpress.com/2014/03/13/approval-workflow-does-not-update-the-approval-status-of-items/
    SharePoint 2010 Approval Workflow with Content Approval
    https://eointherealworld.wordpress.com/2010/12/29/sharepoint-2010-approval-workflow-with-content-approval/
    Best Regards
    Dennis Guo
    TechNet Community Support

  • 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>

  • Updating a CLOB using the JDBC 8.1.6 driver

    I have two issues on which comments are welcome. ( I am using the thin driver )
    1. Using the JDBC 2.0 way of updating a CLOB
    is not possible as the manuals state that
    this can cause "serious corruption".
    2. Using the Oracle specific way ( using
    Oracle specific classes ), it looks like
    I cant update a CLOB column without
    retrieving it first.
    It looks like I need a handle to the CLOB
    in a CLOB object before I can update it.
    This is very frustrating because in my application, we retrieve objects from a database, may keep the object in memory for
    a long time and then update the object from
    the in-memory copy. If I had to use the Oracle specific way of updating clobs, every
    time I need to update a clob, I need to
    retrieve the clob first and then update it
    which runs contrary to handling of other types of columns.
    null

    Ah. I think you're referring to:
    In the implementation of the Oracle JDBC drivers, this functionality is supported only for a configuration using an 8.1.6 database and 8.1.6 JDBC OCI driver. Do not use this functionality for any other configuration, as data corruption can result.
    yeah, that's about what I'm seeing. Anything over 4k blows up. Hopefully the 8.1.6 driver + DBMS will fix these problems.
    Has anyone out there tried it? Can we use the GetClob/GetBlob, or even the getXXXStream() methods in 8.1.6 against CLOB/BLOB columns
    ? I sure hope so. SQL Server and mySQL :-)drivers can both handle it.

Maybe you are looking for

  • Need advice on how to make this all work together

    Not really sure where to post this, so I decided to post here.  I'm trying to streamline devices and move more into the cloud.  Because of some weird network issues it is complicated.   Currently I have a MacMini at home.  I am a teacher so office-ty

  • Combine files to make a 1 swf file

    Hello all! New to flash. I have a couple files that i would like to have "alternating" on my site. So, if you are on the home page, i would like to have these files change or alternate between the images. How would i do this using flash?

  • How to disable Material Picking MB26 from Reservation display MB23

    Hello guys I have to know that disable picking option from display menu reservation t-code MB23. One of our user issued a material from reservation display function selecting picking option from menu and saved that lead to MIGO by MB26 even user does

  • How to check whether a value is empty in ABAP Sql

    Select matnr from mara where MARA~LVORM is null Basically if LVORM is blank, i.e., not popoulated, I want to get matnr. Will above query accomplish this in ABAP OPEN SQL.

  • Adding photos from iPad to computer

    I have 2 iPads and 2 iPhones. My wife has sync'd her iPad on her laptop and now when I try to get her iPad to sync photos on the desktop it says that it would replace her photos. How can I get all of her photos on her iPad to get on my desktop?