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
-
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 longPeeyush 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 ***
-
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
idYou 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,
-VikkiOK. 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 advanceI 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
RJCWhere 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 -
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 aliHi,
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.
nullAh. 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?