【问题标题】:Store html string to oracle blob将 html 字符串存储到 oracle blob
【发布时间】:2015-11-13 06:27:57
【问题描述】:

我必须使用php将包含html数据的字符串存储到oracle blob字段中。所以我正在使用

utl_raw.cast_to_raw('myString')

但是当 myString 大小超过 4000 字节时,我无法存储。 如何解决?

【问题讨论】:

  • 你能再给我们看一些你的代码吗?
  • $myString='
    一些文字
    '; query="update table_file set result=utl_raw.cast_to_raw('$myString') where slno=1";
  • 而table_file的结果字段是BLOB还是VARCHAR2字段?

标签: php sql oracle


【解决方案1】:

我必须使用 php 将包含 html 数据的字符串存储到 oracle blob 字段中

考虑使用 CLOB 而不是 BLOBHTML 可以被认为是一个字符串文字。字符串文字本质上是 VARCHAR2。因此,字符串文字的长度不能超过4000 characters。您需要将它们分别追加4000 bytes 到单个 CLOB 中以存储超过 4000 个字节。

来自documentation

包含单字节或多字节的字符大对象 人物。固定宽度和可变宽度字符集都是 支持,两者都使用数据库字符集。 最大尺寸为 (4 千兆字节 - 1) *(数据库块大小).

例如,

SQL> CREATE TABLE t_clob
  2    (col CLOB
  3    );

Table created.

SQL> INSERT
  2  INTO t_clob VALUES
  3    (
  4    TO_CLOB
  5    (RPAD('<table ><tbody><tr><td>Some text</td></tr></tbody></table>', 4000, '*'))
  6    ||RPAD('<table ><tbody><tr><td>Some text</td></tr></tbody></table>', 4000, '*')
  7    ||RPAD('<table ><tbody><tr><td>Some text</td></tr></tbody></table>', 4000, '*')
  8    );

1 row created.

SQL> SELECT LENGTH(col) FROM t_clob;

LENGTH(COL)
-----------
      12000

从 Oracle 12c 开始,VARCHAR2 的最大大小现在扩展32767 字节。默认情况下,参数 MAX_STRING_SIZESTANDARD,最多可容纳 4000 个字节。

SQL> show parameter MAX_STRING_SIZE

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_string_size                      string      STANDARD

您可以将参数值更改为 EXTENDED,并将 VARCHAR2 的最大值增加到 32767 字节。

主要有两个重要步骤:

ALTER SYSTEM SET max_string_size=extended;

@?/rdbms/admin/utl32k

【讨论】:

    【解决方案2】:

    如果您使用 TEXTS,则 Blob 常用于二进制数据(图像、文档),请改用 CLOB

    BLOB 是二进制 LOB。 CLOB 是字符 LOB。

    使用 CLOB,您可以存储超过 4000 个字节

    【讨论】:

    • "使用 CLOB,您可以存储超过 4000 个字节" 是的,但是您不能在 SQL 中形成超过 4000 个字节的字符串。您需要分块进行。
    猜你喜欢
    • 2015-02-07
    • 2020-01-19
    • 1970-01-01
    • 2012-01-14
    • 2018-12-28
    • 2020-02-19
    • 2013-03-05
    • 2019-05-01
    • 2019-03-16
    相关资源
    最近更新 更多