VastbaseG100

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

Menu

Object类型接口

OCIDefineObject

功能描述

设置命名数据类型或 REF 定义所需的其他属性(本次只实现REF)。

功能说明

此函数遵循对 OCIDefineByPos() 或 OCIDefineByPos2() 的调用来设置初始定义信息。此调用设置命名数据类型定义所需的其他属性。如果在非对象模式下初始化 OCI 环境时调用此函数,则会返回错误。

接口信息

函数/过程

OCIDefineObject gon语法如下:

sword OCIDefineObject ( OCIDefine       *defnp,
                        OCIError        *errhp,
                        const OCIType   *type,
                        void           **pgvpp, 
                        ub4             *pvszsp, 
                        void           **indpp, 
                        ub4             *indszp )

具体参数解释如下:

  • defnp(IN/OUT):之前调用 OCIDefineByPos() 或 OCIDefineByPos2() 时分配的定义句柄。
  • errhp(IN/OUT):OCI 错误句柄。如果存在错误,则会将其记录在 err 中,此函数返回OCI_ERROR。通过调用 OCIErrorGet() 获取诊断信息。
  • type(IN):指向描述程序变量类型的类型描述符对象 (TDO)。此参数对于类型为 SQLT_REF 的变量是可选的,如果未使用,则可以将其作为 NULL 传递。当前只支持(SQLT_REF)类型数据
  • pgvpp(IN/OUT):指向程序变量缓冲区的指针。对于数组,pgvpp 指向指针数组。提取的命名数据类型实例的内存在对象缓存中动态分配。在获取结束时,当收到所有值时,pgvpp 指向指向这些新分配的命名数据类型实例的指针。应用程序必须调用 OCIObjectFree()来在不再需要命名数据类型实例时解除分配它们。如果应用程序希望在缓存中隐式分配缓冲区,则应将 *pgvpp 作为 NULL 传入。
  • pvszsp(IN/OUT):指向程序变量的大小。对于数组,它是 ub4 的数组。
  • indpp(IN/OUT):指向包含并行指示器结构的程序变量缓冲区的指针。对于数组,指向指针数组。分配内存以将指标结构存储在对象缓存中。在获取结束时,当收到所有值时,indpp 指向指向这些新分配的指标结构的指针。
  • indszp (IN/OUT):指向指标结构程序变量的大小。对于数组,它是一个 ub4 数组。

其他说明

OCIObjectNew

功能描述

创建独立实例。

功能说明

此函数创建类型代码或 TDO 指定的类型的新实例。类型可以是复杂的,也可以是基元的。(当前只支持 REF 类型。)

数据相关性

接口信息

函数/过程

OCIObjectNew 语法如下:

sword OCIObjectNew ( OCIEnv            *env, 
                     OCIError          *err, 
                     const OCISvcCtx   *svc, 
                     OCITypeCode        typecode,
                     OCIType           *tdo, 
                     void              *table,
                     OCIDuration        duration,
                     boolean            value,
                     void             **instance );

参数的解释如下:

  • env(IN/OUT):在对象模式下初始化的 OCI 环境句柄。
  • err(IN/OUT):OCI 错误句柄。如果存在错误,则会将其记录在 err 中,此函数返回OCI_ERROR。通过调用 OCIErrorGet() 获取诊断信息。
  • svc(IN):服务上下文句柄。
  • typecode(IN):typecode 所指的类型(当前只支持REF),具体如下:

    类型标识 类型 是否支持
    OCI_TYPECODE_REF REF
    OCI_TYPECODE_DATE DATE
    OCI_TYPECODE_TIMESTAMP TIMESTAMP
    OCI_TYPECODE_TIMESTAMP_TZ TIMESTAMP WITH TIME ZONE
    OCI_TYPECODE_TIMESTAMP_LTZ TIMESTAMP WITH LOCAL TIME ZONE
    OCI_TYPECODE_INTERVAL_YM INTERVAL YEAR TO MONTH
    OCI_TYPECODE_INTERVAL_DS INTERVAL DAY TO SECOND
    OCI_TYPECODE_REAL Single-precision real
    OCI_TYPECODE_DOUBLE Double-precision real
    OCI_TYPECODE_FLOAT Floating-point
    OCI_TYPECODE_NUMBER Oracle NUMBER
    OCI_TYPECODE_BFLOAT BINARY_FLOAT
    OCI_TYPECODE_BDOUBLE BINARY_DOUBLE
    OCI_TYPECODE_DECIMAL Decimal
    OCI_TYPECODE_OCTET Octet
    OCI_TYPECODE_INTEGER Integer
    OCI_TYPECODE_SMALLINT Small int
    OCI_TYPECODE_RAW RAW
    OCI_TYPECODE_VARCHAR2 Variable string ANSI SQL, that is, VARCHAR2
    OCI_TYPECODE_VARCHAR Variable string Oracle SQL, that is, VARCHAR
    OCI_TYPECODE_CHAR Fixed-length string inside SQL, that is SQL CHAR
    OCI_TYPECODE_VARRAY Variable-length array (varray)
    OCI_TYPECODE_TABLE Multiset
    OCI_TYPECODE_CLOB Character large object (CLOB)
    OCI_TYPECODE_BLOB Binary large object (BLOB)
    OCI_TYPECODE_BFILE Binary large object file (BFILE)
    OCI_TYPECODE_OBJECT Named object type, or SYS.XMLType
    OCI_TYPECODE_NAMEDCOLLECTION Collection
    OCI_TYPECODE_BOOLEANFoot 22 Boolean
    OCI_TYPECODE_RECORDFoot 22 Record
    OCI_TYPECODE_ITABLEFoot 22 Index-by BINARY_INTEGER
    OCI_TYPECODE_INTEGERFoot 22 PLS_INTEGER or BINARY_INTEGER
  • tdo(IN):指向类型描述符对象的指针。TDO描述了要创建的实例的类型。(暂不支持)

  • table(IN):指向指定服务器中的表的表对象的指针。如果未给出表,则可以将此参数设置为 NULL。请参阅以下说明,了解如何将表对象和 TDO 一起使用来确定要创建的实例类型(持久、瞬态、值)。

  • duration(IN):这是一个重载参数。此参数的使用基于要创建的实例的类型。(暂不支持)

    • 对于实例的持久对象类型,此参数指定引脚持续时间。
    • 对于实例的瞬态对象类型,此参数指定分配持续时间和引脚持续时间。
    • 对于实例的值类型,此参数指定分配持续时间。
  • value(IN):指定创建的对象是否为值。如果为 TRUE,则创建一个值。否则,将创建可引用对象。如果实例不是对象,则忽略此参数。(暂不支持)

  • instance (OUT):新创建的实例的地址。

其他说明

OCIObjectFree

功能描述

设置命名数据类型或 REF 定义所需的其他属性(本次只实现REF)。

功能说明

此函数遵循对 OCIDefineByPos() 或 OCIDefineByPos2() 的调用来设置初始定义信息。此调用设置命名数据类型定义所需的其他属性。如果在非对象模式下初始化 OCI 环境时调用此函数,则会返回错误。

接口信息

函数/过程

OCIObjectFree gon语法如下:

sword OCIObjectFree ( OCIEnv          *env, 
                      OCIError        *err, 
                      void            *instance, 
                      ub2              flags )

具体参数解释如下:

  • env(IN/OUT):在对象模式下初始化的 OCI 环境句柄。
  • err(IN/OUT):OCI 错误句柄。如果存在错误,则会将其记录在 err 中,此函数返回OCI_ERROR。通过调用 OCIErrorGet() 获取诊断信息。
  • instance(IN):指向独立实例的指针。如果是对象,则必须固定。
  • flags (IN):如果通过OCI_OBJECTFREE_FORCE,即使对象被固定或弄脏,也要释放它。如果传递OCI_OBJECTFREE_NONULL,则不会释放 NULL 结构。(暂不支持)。

其他说明