[英]Store html string to oracle blob
我必须使用 php.So 将包含 html 数据的字符串存储到 oracle blob 字段中
utl_raw.cast_to_raw('myString')
但是当 myString 大小超过 4000 字节时我无法存储。 如何解决这个问题?
我必须使用 php 将包含 html 数据的字符串存储到 oracle blob 字段中
考虑使用CLOB而不是BLOB 。 HTML可以被认为是一个字符串文字。 字符串文字本质上是VARCHAR2 。 所以你不能有一个超过4000 characters
的字符串文字。 您需要将它们每个最多4000 bytes
的块附加到单个CLOB 中以存储超过 4000 个字节。
从文档,
包含单字节或多字节字符的字符大对象。 支持固定宽度和可变宽度字符集,两者都使用数据库字符集。 最大大小为 (4 GB - 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_SIZE是STANDARD ,最多可容纳 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.