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 数据提供程序将所有 CLOB
和 NCLOB
数据作为 Unicode 处理。 因此,在访问 CLOB
和 NCLOB
数据类型时,始终处理字节数,其中每个字符为 2 个字节。 例如,如果包含三个字符的文本字符串在 Oracle 服务器上保存为 , NCLOB
其中字符集为每个字符 4 个字节,并且您执行某个 SetLength
操作,则可以将字符串的长度指定为 6 个字节,尽管该字符串在服务器上存储为 12 个字节。
若要写入 到 LOB
,必须在 SQL SELECT 语句中使用 FOR UPDATE 子句检索 LOB
,并且必须启动本地事务。
注意
对只读 LOB
的写入操作可能会成功,但不会更新 LOB
服务器上的 。 但是,在这种情况下,会更新 的 LOB
本地副本。 因此,以后对 OracleLob 对象的读取操作可能会返回写入操作的结果。