VastbaseG100

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

Menu

环境初始化接口

OCIInitialize

功能描述

初始化OCI进程上下文环境。

功能说明

此调用用于初始化OCI进程上下文环境,所有其他OCI调用必须要在环境上下文初始化的基础上调用,此函数使应用程序能够通过回调定义自己的内存管理函数。如果应用程序定义了此类函数(即内存分配、内存重新分配、内存释放函数),则应使用此函数中的回调参数注册它们。这些内存回调是可选的。如果应用程序在此函数中传递内存回调的值,则使用默认的进程内存分配机制。

接口信息

OCIInitialize语法如下:

sword
OCIInitialize ( 
ub4 mode, 
const void  *ctxp,
void  *(*malocfp)(void  *ctxp, size_t size),
void  *(*ralocfp)(void  *ctxp, void  *memptr, size_t newsize),
void   (*mfreefp)(void  *ctxp, void  *memptr) 
);

参数解释如下:

  • mode (IN):指定初始化模式类型。
    • OCI_DEFAULT:默认模式。
    • OCI_THREADED:线程环境模式。在此模式下,不向用户公开的内部数据结构受到保护,防止多个线程并发访问(暂不支持)。
    • OCI_OBJECT:使用对象特性(暂不支持)。
    • OCI_EVENTS:使用发布者-订阅者通知模式(暂不支持)。
  • ctxp (IN):用户自定义内存回调函数的上下文环境。
  • malocfp (IN): 用户自定义的内存分配函数。如果mode为OCI_THREADED ,则此内存分配函数必须是线程安全的。(暂不支持)。
  • ctxp (IN/OUT):内存分配功能的上下文指针。
  • size (IN):分配的内存大小。
  • ralocfp (IN):用户自定义的内存重新分配函数。如果mode为OCI_THREADED ,则此内存分配函数必须是线程安全的。(暂不支持)
  • ctxp(IN):内存重新分配功能的上下文指针。
  • memptr(IN/OUT):重新分配功能最终分配的内存块指针。
  • newsize(IN):重新分配的内存大小。
  • mfreefp (IN):用户自定义的内存释放函数。如果mode为OCI_THREADED ,则此内存函数必须是线程安全的。(暂不支持)
  • ctxp (IN/OUT):内存释放函数的上下文指针。
  • memptr (IN/OUT):指向要释放的内存的指针。

OCIEnvInit

功能描述

分配和初始化 OCI 环境句柄。

功能说明

此调用分配并初始化 OCI 环境句柄。如果返回OCI_ERROR或OCI_SUCCESS_WITH_INFO,则可以使用环境句柄获取特定于 Oracle 的错误和诊断信息。此调用在本地处理,无需服务器往返,可以使用OCIHandleFree()释放环境句柄。

接口信息

函数/过程

OCIEnvInit语法如下:

sword OCIEnvInit ( 
OCIEnv    **envhpp,
    ub4         mode,
    size_t      xtramemsz,
    void      **usrmempp
 );

参数解释如下:

  • envhpp (OUT):用来保存创建完成的OCIEnv句柄。
  • mode (IN):指定初始化模式类型。
    • OCI_DEFAULT:在该模式下,句柄是互斥的,为默认模式。
    • OCI_ENV_NO_UCB:该模式用于禁止在环境初始化时调用动态回调函数,默认行为是允许进行此类调用。(暂不支持)
  • xtramemsz (IN):指定在初始化环境期间分配的用户内存量。(暂不支持)
  • usrmempp (OUT):返回一个指针,该指针指向xtramemsz大小的用户内存。(暂不支持)

其他说明

OCIEnvCreate

功能描述

创建并初始化 OCI 函数的工作环境句柄。

功能说明

此调用返回一个环境句柄,由其余 OCI 函数使用。OCI 中可以有多个环境,每个环境都有自己的环境模式。如果任何模式需要,此函数还会执行任何进程级初始化。例如,如果要将mode参数设为OCI_THREADED ,则 OCI 使用的所有库也将在线程模式下初始化。

接口信息

函数/过程

OCIEnvCreate语法如下:

sword OCIEnvCreate(
OCIEnv **envp, 
ub4 mode,
void  *ctxp,
void  *(*malocfp)(void  *ctxp, size_t size),
void  *(*ralocfp)(void  *ctxp, void  *memptr, size_t newsize),
void   (*mfreefp)(void  *ctxp, void  *memptr),
size_t xtramem_sz, 
void  **usrmempp
); 

参数解释如下:

  • envhpp (OUT):用来保存创建完成的OCIEnv句柄。
  • mode (IN):指定初始化模式类型。
    • OCI_DEFAULT:默认模式。
    • OCI_THREADED:线程环境模式。在此模式下,不向用户公开的内部数据结构受到保护,防止多个线程并发访问。(暂不支持)
    • OCI_OBJECT:使用对象特性。(暂不支持)
    • OCI_EVENTS:使用发布者-订阅者通知模式。(暂不支持)
    • OCI_NO_UCB:抑制动态回调函数OCIEnvCallback()的调用。默认行为是允许在创建环境时调用。(暂不支持)
    • OCI_ENV_NO_MUTEX:在此模式下不会发生互斥(互斥)锁定。在环境句柄或从环境句柄派生的句柄上完成的所有 OCI 调用都必须序列化。(暂不支持)
    • OCI_SUPPRESS_NLS_VALIDATION:禁止 NLS 字符验证。(暂不支持)
    • OCI_NEW_LENGTH_SEMANTICS:字节长度语义一致地用于所有句柄,而不考虑字符集。(暂不支持)
    • OCI_NCHAR_LITERAL_REPLACE_ON:打开 N' 替换。(暂不支持)
    • OCI_NCHAR_LITERAL_REPLACE_OFF:关闭 N' 替换。(暂不支持)
    • OCI_ENABLE_NLS_VALIDATION:启用 NLS 字符验证。(暂不支持)
  • ctxp (IN):用户自定义内存回调函数的上下文环境。
  • malocfp (IN): 用户自定义的内存分配函数。如果mode为OCI_THREADED ,则此内存分配函数必须是线程安全的。(暂不支持)

    • cxtp(IN/OUT):内存分配功能的上下文指针。
    • size(IN):分配的内存大小。
  • ralocfp (IN):用户自定义的内存重新分配函数。如果mode为OCI_THREADED ,则此内存分配函数必须是线程安全的。(暂不支持)

    • ctxp (IN/OUT):内存重新分配功能的上下文指针。
    • memptr (IN/OUT):内存重新分配获得的内存块指针。
    • newsize (IN):重新分配的内存大小。
  • mfreefp (IN):用户自定义的内存释放函数。如果mode为OCI_THREADED ,则此内存函数必须是线程安全的。(暂不支持)。

    • cxtp(IN/OUT):内存释放功能的上下文指针。
    • memptr(IN):指向要释放的内存的指针。
  • xtramemsz (IN):指定在初始化环境期间分配的用户内存量。(暂不支持)

  • usrmempp (OUT):返回一个指针,该指针指向xtramemsz大小的用户内存。(暂不支持)

外部接口

其他说明

OCIEnvNlsCreate

功能描述

创建并初始化 OCI 函数工作的环境句柄,提供字符集和国家字符集设置功能。

功能说明

1、此调用可以为所有 OCI 调用创建一个环境,创建环境句柄后,绑定和定义句柄的实际长度和返回的长度始终以字节数表示。

2、该函数能够在创建环境时设置数据库字符集charset和国家字符集ncharset。数据库字符集用于存储CHAR,VARCHAR2,CLOB,LONG等类型数据;表示诸如表名、列名以及/PL/SQL变量等;同时也可以用于存储SQL和PL/SQL程序单元等。

3、国家字符集则用于存储NCHAR,NVARCHAR2,NCLOB等类型数据,国家字符集实质上是为oracle选择的附加字符集,主要作用是为了增强Oracle的字符处理能力,因为NCHAR数据类型可以提供对亚洲使用定长多字节编码的支持,而数据库字符集则不能。

4、OCIEnvNlsCreate是OCIEnvCreate()函数的增强版本,charset控制元素据和属性的编码,ncharset控制SQLCS_NCHAR类型属性编码,在设置字符集时,charset和ncharset必须同时为0或者不为0,否则会导致错误。当两者均设置为0时,该函数功能与OCIEnvCreate函数无异。

使用流程

OCIEnvCreate类似,此处不再详细介绍。

配置参数和文件

数据相关性

接口信息

函数/过程

OCINlsEnvCreate语法如下:

sword OCIEnvNlsCreate(
OCIEnv **envp, 
ub4 mode,
void  *ctxp,
void  *(*malocfp)(void  *ctxp, size_t size),
void  *(*ralocfp)(void  *ctxp, void  *memptr, size_t newsize),
void   (*mfreefp)(void  *ctxp, void  *memptr),
size_t xtramem_sz, 
void  **usrmempp,
ub2   charset,
ub2   ncharset 
);

参数解释如下:

  • envhpp (OUT):用来保存创建完成的OCIEnv句柄。
  • mode (IN):指定初始化模式类型。
    • OCI_DEFAULT:默认模式。
    • OCI_THREADED - 线程环境模式。在此模式下,不向用户公开的内部数据结构受到保护,防止多个线程并发访问。(暂不支持)
    • OCI_OBJECT:使用对象特性。(暂不支持)
    • OCI_EVENTS:使用发布者-订阅者通知模式。(暂不支持)
    • OCI_NO_UCB:抑制动态回调函数OCIEnvCallback()的调用。默认行为是允许在创建环境时调用。(暂不支持)
    • OCI_ENV_NO_MUTEX - 在此模式下不会发生互斥(互斥)锁定。在环境句柄或从环境句柄派生的句柄上完成的所有 OCI 调用都必须序列化。(暂不支持)
    • OCI_SUPPRESS_NLS_VALIDATION:禁止 NLS 字符验证。(暂不支持)
    • OCI_NCHAR_LITERAL_REPLACE_ON:打开 N' 替换。(暂不支持)
    • OCI_NCHAR_LITERAL_REPLACE_OFF:关闭 N' 替换。(暂不支持)
    • OCI_ENABLE_NLS_VALIDATION:启用 NLS 字符验证。(暂不支持)
  • ctxp (IN):用户自定义内存回调函数的上下文环境
  • malocfp (IN): 用户定义的内存分配函数。如果mode为 OCI_THREADED ,则此内存分配函数必须是线程安全的。(暂不支持)
    • cxtp(IN/OUT):内存分配功能的上下文指针
    • size(IN):分配的内存大小
  • ralocfp (IN):用户定义的内存重新分配函数。如果mode为OCI_THREADED ,则此内存分配函数 必须是线程安全的。(暂不支持)
    • ctxp (IN/OUT):内存重新分配功能的上下文指针
    • memptr (IN/OUT):重新分配获得的内存块指针
    • newsize (IN):重新分配的内存大小 mfreefp (IN):用户自定义的内存释放函数。如果mode为OCI_THREADED ,则此内存函数必须是线程安全的。(暂不支持)
    • cxtp(IN/OUT):内存释放函数的上下文指针
    • memptr(IN):指向要释放的内存的指针
  • xtramemsz(IN):指定要在环境持续时间内分配的用户内存量。
  • usrmempp(OUT):返回一个指针,该指针指向xtramemsz大小的用户内存。
  • charset (IN):当前环境句柄的客户端字符集。
  • ncharset (IN):当前环境句柄的客户端国家字符集。

其他说明

OCITerminate

功能描述

用于程序的结束,与OCIInitialize ()调用的对应。

功能说明

对于每个进程,OCITerminal ()应该只调用一次,它是 OCIInitialize ()调用的对应物。调用将尝试从共享内存子系统中分离进程并关闭它。它还执行其他流程清理操作。一般在程序结束的时候调用。

接口信息

函数/过程

OCITerminate的语法如下:

sword OCITerminate (ub4 mode)

参数解释如下:

mode:

调用特定模式。

有效值:

OCI _ DEFAULT:执行默认调用。

其他说明