这一般和一般的varchar类型的插入没有多大区别呀
比如是一个文本框,然后你定义一个变量
delphi的大致思路!
var:=text1.text;
strsql:='insert into t1 values('''+var+''')';
tquery.sql.clear;
tquery.sql.add(strsql);
tquery.execsql;
和一般的Varchar2类型的插入是一样的!
比如是一个文本框,然后你定义一个变量
delphi的大致思路!
var:=text1.text;
strsql:='insert into t1 values('''+var+''')';
tquery.sql.clear;
tquery.sql.add(strsql);
tquery.execsql;
和一般的Varchar2类型的插入是一样的!
example 1.
动态PL/SQL,对CLOB字段操作可传递表名table_name,表的唯一标志字段名field_id,clob字段名field_name记录号v_id,开始处理字符的位置v_pos,传入的字符串变量v_clob
修改CLOB的PL/SQL过程:updateclob
create or replace procedure updateclob(
table_name in varchar2,
field_id in varchar2,
field_name in varchar2,
v_id in number,
v_pos in number,
v_clob in varchar2)
is
lobloc clob;
c_clob varchar2(32767);
amt binary_integer;
pos binary_integer;
query_str varchar2(1000);
begin
pos:=v_pos*32766+1;
amt := length(v_clob);
c_clob:=v_clob;
query_str :='select '||field_name||' from '||table_name||'
where '||field_id||'= :id for update ';
--initialize buffer with data to be inserted or updated
EXECUTE IMMEDIATE query_str INTO lobloc USING v_id;
--from pos position, write 32766 varchar2 into lobloc
dbms_lob.write(lobloc, amt, pos, c_clob);
commit;
exception
when others then
rollback;
end;
l /用法说明:
在插入或修改以前,先把其它字段插入或修改,CLOB字段设置为空empty_clob(),
然后调用以上的过程插入大于2048到32766个字符。
如果需要插入大于32767个字符,编一个循环即可解决问题。