VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

大对象接口

限制

在实现clob、blob两种类型时由于数据源内核类型的限制大部分功能在驱动中实现,存在很多限制及不足的情况,故在使用中做出以下限制,同时建议用户非必要不使用此功能。部分接口例如OCILobRead,OCILobWrite等,参数包含无符号整数类型,若传入负数会引发不可预期的问题,请按照类型传入非负数。

  • 在数据绑定时暂时只支持OCIDefineByPos的绑定。

  • 在获取数据是分为轮询和回调,本次只支持轮询。

  • bfile的字段bfile类型长度不能查过1024,否则会被截取。如“bfile('d_file', 'dad.data')” 不能超过1024。

  • blob和clob两个只支持简单基表查询, 不支持复杂类型查询,不支持一张表里多列lob场景, 同时不支持clob和blob类型出现在where条件里。

  • blob的限制需要read和wrtie部分功能。

  • 由于bfile的内核实现必须要open之后才能允许对应的读写操作,故lob的实现(bfile、clob、blob)时需要open之后才能对应的读写等操作。

  • BFILE类型暂时依赖于vastbase数据库2.2.10及以后的版本。

内核权限要求

  • 需要用户创建目录的权限。
  • 需要用户执行dbms_lob包的权限。
  • 需要用户执行utl_raw包的权限。

OCILobOpen

功能描述

以指定模式打开 LOB (内部或外部)。

功能说明

以指定模式打开 LOB (内部或外部)。

接口信息

函数/过程

OCILobOpen语法如下:

sword OCILobOpen ( OCISvcCtx        *svchp,
                   OCIError         *errhp, 
                   OCILobLocator    *locp, 
                   ub1               mode );

参数的解释如下:

  • svchp (IN):服务上下文句柄。
  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
  • locp(IN/OUT):要打开的 LOB。定位器可以引用内部或外部 LOB。
  • mode(IN):打开 LOB 或 BFILE 的模式。在 Oracle8i 或更高版本中,LOB 的有效模式是:
    • OCI_LOB_READONLY:类型CLOB、BLOB、BFILE有效。
    • OCI_LOB_READWRITE:类型CLOB、BLOB有效。

其他说明

OCILobGetLength

功能描述

获取 LOB 的长度。

功能说明

此函数必须用于大于4GB 的 LOB。

接口信息

函数/过程

OCILobGetLength 语法如下:

sword OCILobGetLength2 ( OCISvcCtx      *svchp,
                         OCIError       *errhp,
                         OCILobLocator  *locp,
                         oraub8         *lenp );

参数的解释如下:

  • svchp (IN):服务上下文句柄。
  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
  • locp(IN):唯一引用 LOB 的 LOB 定位器。对于内部 LOB,此定位器必须是从 svchp 指定的服务器获取的定位器。
  • lenp (OUT):它是 LOB 中的字节数。

其他说明

OCILobRead

功能描述

将调用指定的 LOB 或 BFILE 的一部分读入缓冲区。

功能说明

不推荐使用此函数。使用 OCILobRead2()。

接口信息

函数/过程

OCILobRead 语法如下:

sword OCILobRead ( OCISvcCtx           *svchp,
                    OCIError            *errhp,
                    OCILobLocator       *locp,
                    ub4                *amtp,
                   ub4                 offset,
                   void               *bufp,
                   ub4                 bufl,
                   void               *ctxp, 
                   OCICallbackLobRead (cbfp)
                                      ( void          *ctxp,
                                        const void    *bufp,
                                        ub4            len,
                                        ub1            piece 
                                      )
                   ub2                 csid,
                   ub1                 csfrm );

参数的解释如下:

  • svchp (IN/OUT):服务上下文句柄。
  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
  • locp(IN):唯一引用 LOB 或 BFILE 的 LOB 或 BFILE 定位器。此定位器必须是从 svchp 指定的服务器获取的定位器。
  • amtp (IN/OUT):Amtp 中的值是以字节为单位的长度。
  • offset (IN):这是从 LOB 值开始的绝对偏移量,以字节为单位。
  • bufp (IN/OUT):指向一个缓冲区的指针,该缓冲区中的文件被读入。
  • bufl (IN):缓冲区的长度(以八位为单位)。这个值不同于 CLOB 和 NCLOB 的 amtp 值(csfrm = SQLCS_NCHAR) ,因为amtp参数是以字符为单位指定的,而 bufl 参数是以字节为单位指定的(暂不支持)。
  • ctxp (IN):回调函数的上下文指针。可以为 NULL(暂不支持)。
  • cbfp (IN):一个回调函数,可以注册为针对每个部分调用该函数。如果这是 NULL,那么对于每个片段返回 OCI _ 需要 _ DATA。回调函数必须返回 OCI _ CONTINUE 才能继续读取。如果返回任何其他错误代码,则终止 LOB 读取(暂不支持)。
  • ctxp (IN):回调函数的上下文。可以为 NULL(暂不支持)。
  • bufp (IN/OUT):块的缓冲指针(暂不支持)。
  • lenp (IN):当前块的长度(以字节为单位)(暂不支持)。 piecep (IN):哪一部分:OCI _ FIRST _ PIECE,OCI _ NEXT _ PIECE,或者 OCI _ LAST _ PIECE(暂不支持)。
  • csid (IN):缓冲区数据的字符集 ID。如果该值为0,则 csid 设置为客户机的 NLS _ LANG 或 NLS _ CHAR 值,具体取决于 csfrm 的值。除非服务器和客户端具有相同的设置,否则绝不假定它是服务器字符集(暂不支持)。
  • csfrm (IN):缓冲区数据的字符集形式。 csfrm 参数必须与 LOB 的类型一致。Csfrm 参数有两个可能的非零值:SQLCS _ IMPLICIT-数据库字符集 ID、SQLCS _ NCHAR-NCHAR 字符集 ID、默认值为 SQLCS _ IMPLICIT。如果未指定 csfrm,则假定为默认值(暂不支持)。

其他说明

OCILobWrite

功能描述

将缓冲区写入 LOB。

功能说明

此函数必须用于大于4GB 的 LOB。

接口信息

函数/过程

OCILobWrite 语法如下:

sword OCILobWrite ( OCISvcCtx       *svchp,
                    OCIError        *errhp,
                    OCILobLocator   *locp,
                    ub4             *amtp,
                    ub4              offset,
                    void            *bufp, 
                    ub4              buflen,
                    ub1              piece,
                    void            *ctxp, 
                    OCICallbackLobWrite      (cbfp)
                                    (
                                      void     *ctxp,
                                      void     *bufp,
                                      ub4      *lenp,
                                      ub1      *piecep
                                    ) 
                    ub2              csid,
                    ub1              csfrm );

参数的解释如下:

  • svchp (IN/OUT):服务上下文句柄。
  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
  • locp(IN):唯一引用 LOB 或 BFILE 的 LOB 或 BFILE 定位器。此定位器必须是从 svchp 指定的服务器获取的定位器。
  • amtp (IN/OUT):要写入数据库的字节数。(以字节为单位)。
  • offset (IN):在输入时,它是从 LOB 值开始的绝对偏移量。对于字符 LOB,它是从 LOB 开始的字符数; 对于二进制 LOB,它是字节数。第一个位置是1。如果使用流(通过轮询或回调) ,请在第一次调用中指定偏移量; 在随后的轮询调用中,将忽略偏移量参数。使用回调时,没有偏移量参数。
  • bufp (IN):指向写入块的缓冲区的指针。缓冲区中数据的长度被假定为 buflen 中传递的值。即使使用轮询方法将数据分段写入,当调用此调用时,bufp 也必须包含 LOB 的第一部分。如果提供了回调,则 bufp 不能用于提供数据或错误结果。
  • buflen (IN):缓冲区中数据的长度(以字节为单位)。当使用 char_amtp 参数以字符的形式指定金额,并且 buflen 参数以字节的形式指定时,该值与 CLOB的 char_amtp值不同。
  • piece (IN):正在编写缓冲区的哪一部分。此参数的
    • OCI_ONE_PIECE
    • OCI_FIRST_PIECE
    • OCI_NEXT_PIECE
    • OCI_LAST_PIECE
  • ctxp (IN):回调函数的上下文指针。可以为 NULL。
  • cbfp (IN):一种回调,可以注册为在分段写入中为每个片段调用的回调。如果为 NULL,则使用标准轮询方法。回调函数必须返回 OCI_CONTINUE 才能继续写操作。如果返回任何其他错误代码,LOB 写操作将终止。回调接受以下参数(暂不支持):
  • ctxp (IN):回调函数的上下文。可以为 NULL(暂不支持)。
  • bufp (IN/OUT):块的缓冲指针(暂不支持)。
  • lenp (IN):当前块的长度(以字节为单位)(暂不支持)。
  • piecep (IN):哪一部分(暂不支持):
    • OCI_ONE_PIECE
    • OCI_FIRST_PIECE
    • OCI_NEXT_PIECE
    • OCI_LAST_PIECE
  • csid (IN):缓冲区数据的字符集 ID。如果该值为0,则 csid 设置为客户机的 NLS_LANG 或 NLS_CHAR 值,具体取决于 csfrm 的值。除非服务器和客户端具有相同的设置,否则绝不假定它是服务器字符集(暂不支持)。
  • csfrm (IN):缓冲区数据的字符集形式。 csfrm 参数必须与 LOB 的类型一致。csfrm 参数有两个可能的非零值:SQLCS_IMPLICIT-数据库字符集 ID、SQLCS_NCHAR-NCHAR 字符集 ID、默认值为 SQLCS_IMPLICIT。如果未指定 csfrm,则假定为默认值(暂不支持)。

其他说明

OCILobClose

功能描述

关闭先前打开的 LOB 或 BFILE。

功能说明

关闭先前打开的 LOB 或 BFILE。

接口信息

函数/过程

OCILobClose() 语法如下:

sword OCILobClose ( OCISvcCtx      *svchp,
                    OCIError       *errhp, 
                    OCILobLocator  *locp );

参数的解释如下:

  • svchp (IN):服务上下文句柄。
  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
  • locp(IN/OUT):要关闭的 LOB。定位器可以引用内部或外部 LOB。

其他说明

OCILobAssign

功能描述

给一个LOB对象赋值。

功能说明

给一个LOB对象赋值为另一个LOB对象。

接口信息

函数/过程

OCILobAssign语法如下:

sword OCILobAssign ( OCIEnv                *envhp, 
                     OCIError              *errhp, 
                     const OCILobLocator   *src_locp, 
                     OCILobLocator        **dst_locpp );

参数的解释如下:

  • envhp (IN):环境句柄。
  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
  • src_locp(IN):源 LOB对象,用于给目标LOB对象赋值。
  • dst_locpp(IN/OUT):目标LOB对象,需要赋值的LOB对象。

OCILobIsEqual

功能描述

判断LOB对象是否相等。

功能说明

判断两个LOB对象是否相等。

接口信息

函数/过程

OCILobIsEqual 语法如下:

sword OCILobIsEqual ( OCIEnv                  *envhp,
                      const OCILobLocator     *x,
                      const OCILobLocator     *y,
                      boolean                 *is_equal );

参数的解释如下:

  • envhp (IN):环境句柄。
  • x(IN):用来比较的LOB定位器。
  • y(IN):用来比较的LOB定位器。
  • is_equal(OUT):是否相等。

OCILobIsOpen

功能描述

测试 LOB 或 BFILE 是否打开。

功能说明

测试 LOB 或 BFILE 是否打开。

接口信息

函数/过程

OCILobIsOpen 语法如下:

sword OCILobIsOpen ( OCISvcCtx        *svchp,
                     OCIError         *errhp, 
                     OCILobLocator    *locp, 
                     boolean          *flag );

参数的解释如下:

  • svchp (IN):服务上下文句柄。
  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
  • locp(IN):指向正在检查的 LOB 定位器的指针。定位器可以引用内部或外部 LOB。
  • flag (OUT):如果内部 LOB 是打开的,或者 BFILE 是使用输入定位器打开的,则返回 TRUE。如果不是,返回 FALSE。

其他说明

OCILobLocatorIsInit

功能描述

测试以查看是否初始化了给定的 LOB 或 BFILE 定位器。

功能说明

测试以查看是否初始化了给定的 LOB 或 BFILE 定位器。

接口信息

函数/过程

OCILobLocatorIsInit 语法如下:

sword OCILobLocatorIsInit ( OCIEnv               *envhp,
                        OCIError             *errhp,
                        const OCILobLocator  *locp,
                        boolean              *is_initialized );

参数的解释如下:

  • envhp (IN/OUT):服务上下文句柄。
  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
  • locp(IN):正在测试的 LOB 或 BFILE 定位器。
  • is_initialized (OUT):如果给定的 LOB 或 BFILE 定位器已初始化,则返回 TRUE; 如果未初始化,则返回 FALSE。

其他说明

OCILobTrim

功能描述

将 LOB 值截断为较短的长度。

功能说明

不推荐使用此函数。请使用 OCILobTrim2()。

接口信息

函数/过程

OCILobTrim 语法如下:

sword OCILobTrim ( OCISvcCtx       *svchp,
                   OCIError        *errhp,
                   OCILobLocator   *locp,
                   ub4              newlen );

参数的解释如下:

  • svchp (IN):服务上下文句柄。
  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
  • locp(IN): LOB 定位器。对于内部 LOB,此定位器必须是从 svchp 指定的服务器获取的定位器。
  • newlenp (OUT):在输出时,如果 LOB 不为 NULL,则为 LOB 的长度。

其他说明

OCILobTrim2

功能描述

将 LOB 值截断为较短的长度。

功能说明

此函数必须用于大于4GB 的 LOB。

接口信息

函数/过程

OCILobTrim2 语法如下:

sword OCILobTrim2 ( OCISvcCtx       *svchp,
                    OCIError        *errhp,
                    OCILobLocator   *locp,
                    oraub8           newlen );

参数的解释如下:

  • svchp (IN):服务上下文句柄。
  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
  • locp(IN/OUT): LOB 定位器。此定位器必须是从 svchp 指定的服务器获取的定位器。
  • newlen (IN):LOB 值的新长度,它必须小于或等于当前长度。对于字符 LOB,它是字符数。

其他说明

OCILobRead2

功能描述

将调用指定的 LOB 或 BFILE 的一部分读入缓冲区。

功能说明

此函数必须用于大于4GB 的 LOB。

接口信息

函数/过程

OCILobRead2 语法如下:

sword OCILobRead2 ( OCISvcCtx           *svchp,
                    OCIError            *errhp,
                    OCILobLocator       *locp,
                    oraub8              *byte_amtp,
                    oraub8              *char_amtp,
                    oraub8               offset,
                    void                *bufp,
                    oraub8               bufl,
                    ub1                  piece,
                    void                *ctxp, 
                    OCICallbackLobRead2 (cbfp)
                                        ( void          *ctxp,
                                          const void    *bufp,
                                          oraub8         lenp,
                                          ub1            piecep
                                          void         **changed_bufpp,
                                          oraub8        *changed_lenp
                                        )
                    ub2                  csid,
                    ub1                  csfrm );

参数的解释如下:

  • svchp (IN):服务上下文句柄。
  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
  • locp(IN): LOB 定位器。此定位器必须是从 svchp 指定的服务器获取的定位器。
  • byte_amtp (IN/OUT):从数据库中读取的字节数。
  • char_amtp (IN/OUT):读入用户缓冲区的最大字符数(暂不支持)。
  • offset (IN):从 LOB 值开始的绝对偏移量的字节数。从1开始。如果轮询 ,请在第一次调用中指定偏移量; 在随后的轮询调用中,将忽略偏移量参数。
  • bufp (IN/OUT):指向一个缓冲区的指针,该缓冲区中的文件被读入。分配的内存的长度被假定为 bufl。
  • bufl (IN):缓冲区的长度(以八位为单位)。这个值不同于 CLOB 和 NCLOB 的 amtp 值(csfrm = SQLCS_NCHAR) ,因为 amtp 参数是以字符为单位指定的,而 bufl 参数是以字节为单位指定的(暂不支持)。
  • piece (IN):OCI_ONE_PIECE-调用从不假设轮询。如果指示的数量大于缓冲区长度,那么缓冲区将被尽可能多地填充。对于轮询,第一次传递OCI_FIRST_PIECE,在随后的调用中传递 OCI_NEXT_PIECE。
  • ctxp (IN):回调函数的上下文指针。可以为 NULL(暂不支持)。
  • cbfp (IN):一个回调函数,可以注册为针对每个部分调用该函数。如果这是 NULL,那么对于每个片段返回 OCI_NEED_DATA。回调函数必须返回 OCI_CONTINUE 才能继续读取。如果返回任何其他错误代码,则终止 LOB 读取(暂不支持)。
  • ctxp (IN):回调函数的上下文。可以为NULL(暂不支持)。
  • bufp (IN/OUT):块的缓冲指针(暂不支持)。
  • lenp (IN):当前块的长度(以字节为单位)(暂不支持)。
  • piecep (IN):有效值(暂不支持):
    • OCI_FIRST_PIECE
    • OCI_NEXT_PIECE
    • OCI_LAST_PIECE
  • changed_bufpp (OUT):如果回调函数希望使用新的缓冲区来读取下一块,那么它可以放置新缓冲区的地址。如果此参数设置为 NULL,则使用默认的旧缓冲区 bufp(暂不支持)。
  • changed_lenp (OUT):新缓冲区的长度(如果提供的话)(暂不支持)。
  • csid (IN):缓冲区数据的字符集 ID。如果该值为0,则 csid 设置为客户机的 NLS_LANG 或 NLS_CHAR 值,具体取决于 csfrm 的值。除非服务器和客户端具有相同的设置,否则绝不假定它是服务器字符集(暂不支持)。
  • csfrm (IN):缓冲区数据的字符集形式。 csfrm 参数必须与 LOB 的类型一致。csfrm参数有两个可能的非零值:SQLCS_IMPLICIT-数据库字符集 ID、SQLCS_NCHAR-NCHAR 字符集 ID、默认值为 SQLCS_IMPLICIT。如果未指定csfrm,则假定为默认值。

其他说明

OCILobCreateTemporary

功能描述

创建临时LOB对象。

功能说明

无。

接口信息

函数/过程

OCILobCreateTemporary 语法如下:

sword OCILobCreateTemporary(OCISvcCtx          *svchp,
                            OCIError           *errhp,
                            OCILobLocator      *locp,
                            ub2                 csid,
                            ub1                 csfrm,
                            ub1                 lobtype,
                            boolean             cache,
                            OCIDuration         duration)

参数的解释如下:

  • svchp (IN):服务上下文句柄。
  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。
  • locp(IN): LOB 定位器。此定位器必须是从 svchp 指定的服务器获取的定位器。
  • csid (IN):缓冲区数据的字符集 ID。如果该值为0,则 csid 设置为客户机的 NLS_LANG 或 NLS_CHAR 值,具体取决于 csfrm 的值。除非服务器和客户端具有相同的设置,否则绝不假定它是服务器字符集(暂不支持)。
  • csfrm (IN):缓冲区数据的字符集形式。 csfrm 参数必须与 LOB 的类型一致。csfrm参数有两个可能的非零值:SQLCS_IMPLICIT-数据库字符集 ID、SQLCS_NCHAR-NCHAR 字符集 ID、默认值为 SQLCS_IMPLICIT。如果未指定csfrm,则假定为默认值。
  • lobtype(IN):要创建的 LOB 类型。有效值包括:
    • OCI_TEMP_BLOB:用于临时 BLOB 的 OCI_TEMP_BLOB。
    • OCI_TEMP_CLOB:用于临时 CLOB 的 OCI_TEMP_CLOB。
  • cache (IN):如果应该将临时 LOB 读入缓存,则传递 TRUE; 如果不应该,则传递 FALSE。NOCACHE 功能的默认值为 FALSE。(暂不支持)

  • duration (IN):临时 LOB 的持续时间。以下是有效值:(暂不支持)

    • OCI_DURATION_SESSION
    • OCI_DURATION_CALL

其他说明

OCILobFreeTemporary

功能描述

释放一个临时LOB。

功能说明

释放一个临时LOB。

接口信息

函数/过程

语法如下:

sword OCILobFreeTemporary( OCISvcCtx     *svchp,
              OCIError           *errhp,
              OCILobLocator      *locp);

参数的解释如下:

  • svchp (IN/OUT):服务上下文句柄。

  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。

  • locp(IN/OUT): 定位符,它唯一的指定了一个需要被释放的LOB。

其他说明

OCILobAppend

功能描述

将一个LOB追加到另一个LOB。

功能说明

将一个LOB追加到另一个LOB。

接口信息

函数/过程

语法如下:

sword OCILobAppend(OCISvcCtx    *svchp,
             OCIError           *errhp,
             OCILobLocator      *dst locp,
             OCILobLocator      *src locp);

参数的解释如下:

  • svchp (IN):服务上下文句柄。

  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。

  • dst_locp(IN/OUT):唯一引用目标LOB的内部 LOB定位器。此定位器必须是从svchp指定的服务器获得的定位器。

  • srg_lop(IN/OUT):内部LOB定位器,唯一引用源LOB。此定位器必须是从svchp 指定的服务器获得的定位器。

其他说明

OCILobCharSetId

功能描述

从LOB定位器获取字符集ID。

功能说明

从LOB定位器获取字符集ID。

接口信息

函数/过程

语法如下:

sword OCILobCharSetId(OCIEnv         *envhp,
             OCIError                *errhp,
             Const OCILobLocator     *locp,
             ub2      *csid);

参数的解释如下:

  • envhp (IN):环境句柄。

  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。

  • locp(IN):唯一引用LOB的内部 LOB定位器。对于内部LOB,此定位器必须是从svchp指定的服务器获得的定位器。

  • srg_lop(IN/OUT):内部LOB定位器,唯一引用源LOB。此定位器必须是从svchp 指定的服务器获得的定位器。

  • csid(OUT):输入LOB定位器的数据库字符集ID。如果输入定位符用于BLOB或BFILE,则csid设置为 0,因为没有二进制1ob 或二进制文件的字符集概念。

其他说明

OCILobCopy

功能描述

将一个 LOB的全部或部分复制到另一个 LOB。

功能说明

将一个 LOB的全部或部分复制到另一个 LOB。

接口信息

函数/过程

语法如下:

sword OCILobCopy ( OCISvcCtx  *svchp,
             OCIError     *errhp,
             OCILobLocator  *dst_locp,
             OCILobLocator  *src_locp,
             oraub8    amount,
             oraub8    dst_offset,
             oraub8    src_offset );

参数的解释如下:

  • svchp (IN/OUT): 服务上下文句柄。

  • errhp(IN/OUT): 出现错误时,可以传递给 OCIRRORGET( )以获取诊断信息的错误句柄。

  • dst_locp(IN): 唯一引用目标LOB 的内部LOB定位器。此定位器必须是从svchp指定的服务器获得的定位器。

  • src_locp(IN): 内部LOB定位器,唯一的引用源LOB。此定位器必须是从svchp 指定的服务器获得的定位器。

  • amount(IN): cob或nclob 的字符数或要从源LOB复制到目标LOB的 blob的字节数。

  • dst_offset(IN): 这是目标LOB 的绝对偏移量。对于字符LOB,它是从LOB开头开始写入的字符数。对于二进制LOB,它是从LOB开头开始写入的字节数。偏移量从1开始。

  • src_offset (IN): 这是源LOB的绝对偏移量。对于字符LOB,它是从LOB开始的字符数。对于二进制1ob,它是字节数。从1开始。

其他说明

OCILobDisableBuffering

功能描述

禁用输入定位器的 LOB缓冲。

功能说明

该函数目前仅做接口兼容,并未实现。

接口信息

函数/过程

语法如下:

sword OCILobDisableBuffering ( OCISvcCtx  *svchp,
            OCIError     *errhp,
            OCILobLocator  *locp );

参数的解释如下:

  • svchp (IN/OUT): 服务上下文句柄。

  • errhp(IN/OUT): 出现错误时,可以传递给 OCIRRORGET( )以获取诊断信息的错误句柄。

  • locp(IN): 唯一引用LOB或BFILE 的LOB或BFILE 定位器。此定位器必须是从svchp指定的服务器获得的定位器。

其他说明

OCILobIsTemporary

功能描述

判断定位器是否指向临时 LOB。

功能说明

判断定位器是否指向临时 LOB。

接口信息

函数/过程

语法如下:

sword OCILobIsTemporary(OCIEnv   *envhp,
              OCIError   *errhp,
              OCILobLocator   *locp,
              boolean    *is_temporary);

参数的解释如下:

  • svchp (IN): 服务上下文句柄。

  • errhp(IN/OUT): 出现错误时,可以传递给 OCIRRORGET( )以获取诊断信息的错误句柄。

  • locp(IN/OUT): 要判断的LOB。

  • is_temporary(OUI): 如果 LOB定位器指向临时LOB,则返回 TRUE;如果没有,则为 FALSE。

其他说明

OCILobEnableBuffering

功能描述

接口只做兼容,无实际作用。

功能说明

接口只做兼容,无实际作用。

接口信息

函数/过程

语法如下:

sword OCILobEnableBuffering(OCISvcCtx   *svchp, OCIError   *errhp, OCILobLocator   *locp);

参数的解释如下:

  • 输入:

    • svchp (IN): 服务上下文句柄。

    • errhp(IN): 错误句柄。

    • locp(OUT): 唯一引用LOB的内部LOB定位器。

  • 输出:

    • sword(OUT): 函数是否成功执行。

其他说明

OCILobErase

功能描述

从指定的偏移量开始擦除内部LOB 数据的指定部分。此函数仅对内部LOB有效,不允许使用BFILE。

功能说明

从指定的偏移量开始擦除内部LOB 数据的指定部分。此函数仅对内部LOB有效,不允许使用BFILE。

接口信息

函数/过程

语法如下:

sword
OCILobErase(OCISvcCtx *svchp, OCIError  *errhp, OCILobLocator *locp,
         ub4 *amount, ub4 offset)

参数的解释如下:

  • 输入:

    • svchp (IN): 服务上下文句柄。

    • errhp(IN): 错误句柄。

    • locp(IN/OUT): 唯一引用LOB的内部LOB定位器。

    • amount(IN/OUT): 要擦除的LOB 的字节数。在IN上,该值表示要擦除的字符数或字节数。在OUT 上,该值标识擦除的字节数。

    • offset(IN/OUT): LOB 字节数,从要从中开始擦除数据的LOB值的开头开始的绝对偏移量。从1开始。

  • 输出:

    • sword(OUT): 函数是否成功执行。

其他说明

OCILobFileClose

功能描述

在服务器的文件系统上关闭以前打开的BFILE文件。

功能说明

在服务器的文件系统上关闭以前打开的BFILE文件。

接口信息

函数/过程

语法如下:

sword
OCILobFileClose (OCISvcCtx  *svchp, OCIError  *errhp,
            OCILobLocator  *filep);

参数的解释如下:

  • 输入:

    • svchp (IN): 服务上下文句柄。

    • errhp(IN): 错误句柄。

    • filep(IN/OUT): 指向BFILE定位器的指针,该定位器引用要关闭的 BFILE。

  • 输出:

    • sword(OUT): 函数是否成功执行。

其他说明

OCILobFileOpen

功能描述

在服务器的文件系统上打开 BFILE 以进行只读访问。

功能说明

在服务器的文件系统上打开 BFILE 以进行只读访问。

接口信息

函数/过程

语法如下:

sword
OCILobFileOpen (OCISvcCtx  *svchp, OCIError  *errhp,
            OCILobLocator  *filep, ub1 mode)

参数的解释如下:

  • 输入:

    • svchp (IN): 服务上下文句柄。

    • errhp(IN): 错误句柄。

    • filep(IN/OUT): 要打开的BFILE。如果定位器未引用 BFILE,则为错误。

  • 输出:

    • sword(OUT): 函数是否成功执行。

其他说明

OCILobFlushBuffer

功能描述

刷新LOB缓冲区的内容。

功能说明

刷新LOB缓冲区的内容。

接口信息

函数/过程

语法如下:

sword OCILobFlushBuffer ( OCISveCtx  *svchp,
           OCIError   *errhp,
           OCILobLocator   *locp,
           ub4  flag );

参数的解释如下:

  • 输入:

    • svchp (IN): 服务上下文句柄。

    • errhp(IN): 当出现错误时,您可以传递给 OCIEorGet()以获取诊断信息的错误句柄。

    • locp (IN/OUT): 唯一引用 LOB 的内部定位器。

    • flag(IN): 当flag设置为 OCI_LOB_BUFFER_FREE,lob 缓冲区在调用后会被刷新。

  • 输出:

    • sword(OUT): 函数是否成功执行。

    • 目前内核并未支持0CILobEnableBuffer 接口的实现,所以该接口也只做了兼容性实现,没有实际功能实现。

其他说明

OCILobGetChunkSize

功能描述

获取LOB内存块的大小。

功能说明

获取LOB内存块的大小。

接口信息

函数/过程

语法如下:

sword OCILobGetChunkSize ( OCISveCtx   *svchp,
             OCIEror     *errhp,
             OCILobLocator  *locp,
             ub4    *chunk_size );

参数的解释如下:

  • 输入:

    • svchp (IN): 服务上下文句柄。

    • errhp(IN): 当出现错误时,您可以传递给 OCIEorGet()以获取诊断信息的错误句柄。

    • locp (IN/OUT): 唯一引用 LOB 的内部定位器。

    • chunk_size(OUT): chunk_size参数是以BLOB、CLOB和NCLOB的字节为单位返回的。

  • 输出:

    • sword(OUT): 函数是否成功执行。

    • 目前内核并未支持0CILobEnableBuffer 接口的实现,所以该接口也只做了兼容性实现,没有实际功能实现。

其他说明

OCILobCharSetId

功能描述

从LOB定位器获取字符集ID。

功能说明

从LOB定位器获取字符集ID。

接口信息

函数/过程

语法如下:

sword OCILobCharSetId(OCIEnv         *envhp,
             OCIError                *errhp,
             Const OCILobLocator     *locp,
             ub2      *csid);

参数的解释如下:

  • envhp (IN):环境句柄。

  • errhp(IN/OUT):出现错误时,可以传递给OCIRRORGET()以获取诊断信息的错误句柄。

  • locp(IN):唯一引用LOB的内部 LOB定位器。对于内部LOB,此定位器必须是从svchp指定的服务器获得的定位器。

  • srg_lop(IN/OUT):内部LOB定位器,唯一引用源LOB。此定位器必须是从svchp 指定的服务器获得的定位器。

  • csid(OUT):输入LOB定位器的数据库字符集ID。如果输入定位符用于BLOB或BFILE,则csid设置为 0,因为没有二进制1ob 或二进制文件的字符集概念。

其他说明

OCILobCharSetForm

功能描述

获取 LOB 定位符的字符集形式(如果有的话)。CLOB 仅支持返回 SQLCS_IMPLICIT。

功能说明

获取 LOB 定位符的字符集形式(如果有的话)。CLOB 仅支持返回 SQLCS_IMPLICIT。

接口信息

函数/过程

语法如下:

sword OCILobCharSetForm ( OCIEnv  *envhp, OCIError  *errhp,
           const OCILobLocator   *locp,  ubl  *csfrm)

参数的解释如下:

  • 输入

    • env(IN/OUT):作为空指针传递。

    • err(IN/OUT):NCI错误句柄。如果出现错误,则记录在 err 中,此函数返回NCI_ERROR。通过调用NCIErrorGet()可以获得诊断信息。

    • locp(IN):用于获取字符集形式的 LOB 定位器。

    • csfrm(IN):输入LOB 定位符的字符集形式。如果输入定位符 ocp 用于 BLOB或BFILE,则 csfrm将被设置为0,因为对于二进制 lob 和 BFILE 没有字符集的概念。调用者必须为 csfm(ub1)分配空间。csfim 参数有两个可能的非零值:

      • SOLCS_IMPLICIT -数据库字符集 ID,默认值。

      • SOLCS_NCHAR-NCHAR 字符集 ID。(不支持)

  • 输出

    • sword (OUT):函数是否成功执行。

其他说明

OCIDurationEnd

功能描述

为临时 lob 结束用户 duration。

功能说明

该接口目前仅作兼容性,没有具体实现。

接口信息

函数/过程

语法如下:

sword OCIDurationEnd ( OCIEnv    *env,
                       OCIError   *err,
                       const OCISvcCtx   *svc,
                       OCIDuration   duration);

参数的解释如下:

  • env (IN):服务器环境变量信息。

  • svc (IN):服务上下文句柄。

  • err(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。

  • dur(OUT):一个最近使用 OCIDurationBegin 创建的 duration 。

其他说明

OCIDurationBegin

功能描述

为临时 lob 开始用户 duration。

功能说明

该接口目前仅作兼容性,没有具体实现。

接口信息

函数/过程

语法如下:

sword OCIDurationEnd ( OCIEnv    *env,
                       OCIError   *err,
                       const OCISvcCtx   *svc,
                       OCIDuration   parent,
                       OCIDuration   *dur);

参数的解释如下:

  • env (IN):服务器环境变量信息。

  • svc (IN):服务上下文句柄。

  • err(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。

  • parent(IN):要启动的 duration 的父级。

  • dur(OUT):新创建的用户 duration。

其他说明

OCILobFileCloseAll

功能描述

关闭所有正在打开的 bfile 类型文件。

功能说明

关闭所有正在打开的 bfile 类型文件。该接口不会关闭 blob 和 clob 类型文件。

接口信息

函数/过程

语法如下:

sword  OCIobFileCloseAll ( OCISvcCtx  *svchp, OCIError  *errhp);

参数的解释如下:

  • svc (IN):服务上下文句柄。

  • errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。

其他说明

OCILobFileExist

功能描述

检测 bfile 类型文件在服务器上是否存在。

功能说明

检测 bfile 类型文件在服务器上是否存在。

接口信息

函数/过程

语法如下:

sword  OCILobFileExists (OCISvcCtx  *svchp,  OCIError   *errhp,
                             OCILobLocator    *filep,
                             boolean   *flag);

参数的解释如下:

  • svc (IN):服务上下文句柄。

  • errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。

  • filep(IN):LOB 定位器。

  • flag(OUT):检测 bfile 类型文件在服务器上是否存在的结果。

其他说明

OCILobFileGetName

功能描述

获取 OCILobLocator 类型内存储的 lob 名字信息。

功能说明

获取 OCILobLocator 类型内存储的 lob 名字信息。

接口信息

函数/过程

语法如下:

sword OCILobFileGetName (OCIEnv  *envhp, OCIError  *errhp,
                         const OCILobLocator   *filep,
                         OraText   *dir_alias,  ub2  *d_length,
                         OraText   *filename,  ub2  *f_length);

参数的解释如下:

  • svc (IN):服务上下文句柄。

  • errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。

  • filep(IN):LOB 定位器。

  • dir_alias(OUT) :目录信息。

  • d_length (OUT) :dir_alias 长度。

  • filename(OUT):文件名。

  • f_length (OUT) :filename 长度。

其他说明

OCILobFileIsOpen

功能描述

检测 bfile 类型文件是否打开。

功能说明

检测 bfile 类型文件是否打开。

接口信息

函数/过程

语法如下:

sword OCILobFileIsOpen ( OCISvcCtx  *svchp, OCIError   *errhp,
                         OCILobLocator   *filep,
                         boolean   *flag);

参数的解释如下:

  • svc (IN):服务上下文句柄。

  • errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。

  • filep(IN):LOB 定位器。

  • flag(OUT) :检测 bfile 类型文件是否打开的结果。

其他说明

OCILobFileSetName

功能描述

设置 OCILobLocator 类型内存储的 lob 名字信息。

功能说明

设置 OCILobLocator 类型内存储的 lob 名字信息。

接口信息

函数/过程

语法如下:

sword OCILobFileSetName ( OCIEnv  *envhp, OCIError  *errhp,
                          OCILobLocator    **filepp,
                          const OraText   *dir_alias,  ub2 d_length,
                          const OraText   *filename,  ub2 f_length);

参数的解释如下:

  • svc (IN):服务上下文句柄。

  • errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。

  • filepp(IN/OUT):LOB 定位器。

  • dir_alias (IN):目录信息。

  • d_length (IN) :dir_alias 长度。

  • filename (IN):文件名。

  • f_length (IN) :filename 长度。

其他说明

OCILobLoadFromFile

功能描述

从 bfile 中加载 lob。

功能说明

从 bfile 中加载 lob。

接口信息

函数/过程

语法如下:

sword OCILobLoadFromFile  ( OCISvcCtx  *svchp, OCIError  *errhp,
                            OCILobLocator   *dst_locp,
                            OCILobLocator    *src_filep,
                            ub4 amount, ub4 dst_offset,
                            ub4 src_offset);

参数的解释如下:

  • svc (IN):服务上下文句柄。

  • errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。

  • dst_locp(OUT):目标 LOB 定位器,需要为 bloc/clob 类型。

  • src_filep (IN):来源LOB 定位器,需要为 bfile 类型。

  • amount (IN):lob 最大长度。

  • dst_offset (IN) :目标 LOB 定位器偏移量。

  • src_offset (IN):来源 LOB 定位器偏移量。

其他说明

OCILobLocatorAssign

功能描述

将一个 OCILobLocator 类型的值赋值给另一个。

功能说明

将一个 OCILobLocator 类型的值赋值给另一个,如果源 LOB 定位器引用临时 LOB,则目标也会变成临时 LOB。源和目标在概念上是不同的临时 LOB。

接口信息

函数/过程

语法如下:

sword OCILobLocatorAssign ( OCISvcCtx  *svchp, OCIError   *errhp,
                            const OCILobLocator    *src_locp,
                            OCILobLocator     **dst_locpp);

参数的解释如下:

  • svc (IN):服务上下文句柄。

  • errhp(IN/OUT):出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。

  • src_locp(IN):来源LOB 定位器。

  • dst_locpp (IN/OUT) :目标LOB 定位器。

其他说明

OCILobWriteAppend

功能描述

对一个 lob 文件进行追加写。

功能说明

对一个 lob 文件进行追加写。

接口信息

函数/过程

语法如下:

sword OCILobWriteAppend ( OCISvcCtx  *svchp, OCIError  *errhp, OCILobLocator  *lobp,
                          ub4   *amtp,  void  *bufp, ub4 bufl, ubl piece,
                          void  *ctxp, OCICallbackLobWrite  cbfp, ub2 csid,
                          ubl csfrm);

参数的解释如下:

  • svc (IN): 服务上下文句柄。

  • errhp(IN/OUT): 出现错误时,可以传递给 OCIRRORGET() 以获取诊断信息的错误句柄。

  • lobp(IN): LOB 定位器。

  • amtp (IN):要追加写的长度。

  • bufp (IN): 要追加写的内容所在缓存。

  • bufl (IN): 要追加写的内容所在缓存长度。

  • 其他参数无意义,请填写 0,NULL,NULL,0,0。

其他说明