create table test(
id number primary key,
content clob
)
insert into test values(1,'test小于4000字符的可以');
insert into test values(1,'test大于于4000字符的就出错了,该怎么写?');谢了先。

解决方案 »

  1.   

    create table test(
    id number primary key,
    content clob default  EMPTY_cLOB
    );
    查看字符集:
    怎么样查看数据库字符集 
    [A]数据库服务器字符集select * from nls_database_parameter,其来源于props$,是表示数据库的字符集。 
      客户端字符集环境select * from nls_instance_parameter,其来源于v$parameter, 
    表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表 
      会话字符集环境 select * from nls_session_parameter,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameter一致。 
      客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件 
      字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。
      

  2.   

    SqlStr := 'insert into test values(1,':con');
             + ')';
     query3.Close;
     query3.SQL.Clear;
     self.Query3.SQL.Add(SqlStr);
     stream:=tstringstream.Create(filename);
      self.Query3.ParamByName('con').LoadFromStream(stream,ftBlob);
      self.Query3.ExecSQL;delphi的写法
      

  3.   

    shit,有谁知道pl/sql怎么插入CLOB,BLOB之类的数据?
      

  4.   

    zhangshunshi(宇轩) 
    ------------------------------
    你可以这样复制long raw记录
    1.首先创建一个表A,如:
    create table A(zxtmc varchar2(50),mknr blob)2.表XT_MKDA有两个字段:zxtmc varchar2(50),mknr long raw
    把xt_mkda的数据插入A中:
    insert into A
    select zxtmc,to_lob(mknr) from XT_MKDA3.创建表B:
    create table B(zxtmc varchar2(50),mknr long raw)4.复制表A 的记录到表B:
    insert into B
    select zxtmc,mknr from A5.查看select * from B
    表B就是你要的结果long raw类型字段的内容复制到另一张表中
    ----------------------------------------
    问题在于PL/SQL不支持你这样的使用,我在SQL PLUS下面是直接可以执行的,但PL/SQL总报错,说类型不匹配
      

  5.   

    我一步一步这样做是可以的,我想pl/sql可以的
      

  6.   

    ORACLE里有个自带的程序包专门用来操作CLOB型字段的。对于超过4000的字串需要循环插入,显示也是需要循环拼接显示。就知道点理论,我也没用过!