DBMS_LOB.COPY (
dest_lob IN OUT NOCOPY BLOB,
src_lob IN BLOB,
amount IN INTEGER,
dest_offset IN INTEGER := 1,
src_offset IN INTEGER := 1);
例子:
CREATE OR REPLACE PROCEDURE Example_3a IS
lobd, lobs BLOB;
dest_offset INTEGER := 1
src_offset INTEGER := 1
amt INTEGER := 3000;
BEGIN
SELECT b_col INTO lobd
FROM lob_table
WHERE key_value = 12 FOR UPDATE;
SELECT b_col INTO lobs
FROM lob_table
WHERE key_value = 21;
DBMS_LOB.COPY(lobd, lobs, amt, dest_offset, src_offset);
COMMIT;
EXCEPTION
WHEN some_exception
THEN handle_exception;
END;
dest_lob IN OUT NOCOPY BLOB,
src_lob IN BLOB,
amount IN INTEGER,
dest_offset IN INTEGER := 1,
src_offset IN INTEGER := 1);
例子:
CREATE OR REPLACE PROCEDURE Example_3a IS
lobd, lobs BLOB;
dest_offset INTEGER := 1
src_offset INTEGER := 1
amt INTEGER := 3000;
BEGIN
SELECT b_col INTO lobd
FROM lob_table
WHERE key_value = 12 FOR UPDATE;
SELECT b_col INTO lobs
FROM lob_table
WHERE key_value = 21;
DBMS_LOB.COPY(lobd, lobs, amt, dest_offset, src_offset);
COMMIT;
EXCEPTION
WHEN some_exception
THEN handle_exception;
END;
{
boolean is=false;
ResultSet rs=null;
try {
con();
Connection con=jk.getConnection();
Statement stmt=jk.getStatenment(con);
con.setAutoCommit(false);
String sql="insert into test values('"+id+"', empty_clob())";
stmt.executeUpdate(sql);
con.commit();
sql="select content from test where id='"+id+"'for update";
System.out.println(sql);
rs=stmt.executeQuery(sql);
if(rs.next())
{
oracle.sql.CLOB clob=(oracle.sql.CLOB) rs.getClob("content");
clob.putString(1, content);
sql="update test set content=? where id=" + id;
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setClob(1, clob);
is=true;
}
rs.close();
}catch(Exception e){
e.printStackTrace();
is=false;
}
return is;
}我这个为什么clob字段插不到数据库中去!
http://expert.csdn.net/Expert/topic/2435/2435782.xml?temp=.9762079