公司要做学习考试系统,功能都能实现了,但是现在出现了个大问题
每个课程都有自己的学习资料,要求对学习资料可以编辑,修改,
有的资料多达几万字,我怎么存到数据库里啊,varchar2类型的字符有限制,我该怎么办?
或者大家有好的方法?

解决方案 »

  1.   

    what database are you using? for sql server, use ntext or even image field, for oracle, use NCLOB or BLOB
      

  2.   

    对,如果是sql server 就用ntext,oracle,就用blob
      

  3.   

    几万字,没问题的 
    ntext
      

  4.   

    看来你用的是Oracle数据库,可以用它的Text类型啊
      

  5.   

    sql server 不可能连几万字的文本都存不了把!肯定行的!
      

  6.   

    SQL server 2000 ntext 字段能存2G,应该够用了。
      

  7.   

    text、ntext 和 image 数据
    各个 text、ntext 和 image 值最大为 2 GB,否则将太长以致不能存储在单个数据行中。在 Microsoft® SQL Server™ 2000 中,小的 text、ntext 或 image 值可以直接存储在行中,由于太大而不能存放在行中的值则存储在页集合内,该页集合与容纳行的其它列的数据的页分开存储。管理员使用 sp_tableoption 中的 text in row 选项,指定小的 text、ntext 或 image 值是否直接存储在行中: 当 text in row 是 OFF 时,SQL Server 2000 的 ntext、text 和 image 行为与 SQL Server 7.0 版相同。对于每个 text、ntext 或 image 值,存储在数据行内的所有内容是一个 16 字节的指针。对于每一行,该指针指向 text、ntext 或 image 数据的位置。包含多个 text、ntext 或 image 列的行对每个 text、ntext或 image 列均有一个指针。
    当 text in row 是 ON 时,SQL Server 2000 在数据行中存储小的 text、ntext 和 image 值。只有不能存储在行中的 text、ntext 或 image 值存储在单独的页集合中。 
    每个表只有一个保存 text、ntext 和 image 数据的页集合。indid = 255 的 sysindexes 行是这个集合的定位点。表内所有行的 text、ntext 和 image 数据交叉存取在这个 text 和 image 页集合内。在 SQL Server 2000 中,各个 text、ntext 和 image 页不局限于只包含 text、ntext 或 image 列的一个事件的数据。一个 text、ntext 或 image 页能包含多行数据,甚至能包含 text、ntext 和 image 数据的混合。虽然用户总是将 text、ntext 和 image 数据当作单个长字节字符串来使用,但这类数据并不按那种格式存储。这类数据存储在 8 KB 页的集合内,而这些页不一定相邻。在 SQL Server 2000 中按 B 树结构逻辑地组织页,而在SQL Server 6.5 版及更早的版本中是在页链内将页链接在一起。SQL Server 2000 使用的这种方法的优点在于:从字符串的中间开始操作效率更高。SQL Server 2000 可以在 B 树中快速浏览,而 SQL Server 6.5 版必须在页链中扫描。