OracleLob.SetLength(Int64) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将流的长度 OracleLob 设置为小于当前长度的值。
public:
override void SetLength(long value);
public override void SetLength(long value);
override this.SetLength : int64 -> unit
Public Overrides Sub SetLength (value As Long)
参数
例外
该操作不在事务中,对象 OracleLob 为 null,或连接已关闭。
对象已关闭或释放。
发生 Oracle 错误。
注解
尝试增加流的长度 OracleLob 失败,并从 Oracle 服务器返回“消息:ORA-22926:指定的剪裁长度大于当前 LOB 值的长度”。
流必须同时支持写入和寻求 SetLength 正常运行。
Oracle 的 .NET Framework Data Provider 将所有 CLOB 和 NCLOB 数据作为 Unicode 进行处理。 因此,访问 CLOB 和 NCLOB 数据类型时,始终处理字节数,其中每个字符为 2 个字节。 例如,如果包含三个字符的文本字符串保存在 NCLOB 每个字符为 4 个字节的 Oracle 服务器上,并且执行 SetLength 操作,则指定字符串的长度为 6 个字节,尽管它在服务器上存储为 12 个字节。
若要写入, LOB必须在 SQL SELECT 语句中使用 FOR UPDATE 子句检索 LOB ,并且必须启动本地事务。
注释
对只读 LOB 的写入操作可能会成功,但不更新 LOB 服务器上的写入操作。 但是,在这种情况下,将更新该 LOB 副本的本地副本。 因此,以后对 OracleLob 对象的读取操作可能会返回写入操作的结果。