oracle的pro*c语法 调用函数包含入参 接受返回值的代码用例

以下是 Oracle Pro*C 调用函数,包含入参和接受返回值的代码示例:

``` #include <stdio.h> #include <sqlca.h> #include <oraca.h> #include <oci.h>

void check_err(OCIError *errhp) { sb4 errcode = 0; text errbuf[512]; memset(errbuf, 0, sizeof(errbuf)); OCIErrorGet((dvoid *)errhp, (ub4)1, (text *)NULL, &errcode, errbuf, (ub4)sizeof(errbuf), OCI_HTYPE_ERROR); printf("Error - %s\n", errbuf); }

int main() { /* 初始化环境 */ OCIEnv *envhp; OCIError *errhp; OCIServer *srvhp; OCISvcCtx *svchp; OCISession *authp; OCIStmt *stmthp; sword status;

status =OCIEnvCreate((OCIEnv **)&amp;envhp, OCI_DEFAULT, (dvoid *)0,
                      (dvoid * (*)(dvoid *, size_t))0,
                      (dvoid * (*)(dvoid *, dvoid *, size_t))0,
                      (void (*)(dvoid *, dvoid *))0, (size_t)0, (dvoid **)0);
if (status != OCI_SUCCESS)
{
    printf("OCIEnvCreate failed\n");
    return -1;
}

status = OCIHandleAlloc((dvoid *)envhp, (dvoid **)&amp;errhp, OCI_HTYPE_ERROR,
                        (size_t)0, (dvoid **)0);
if (status != OCI_SUCCESS)
{
    printf("OCIHandleAlloc (error handle) failed\n");
    return -1;
}

/* 连接数据库 */
status = OCIHandleAlloc((dvoid *)envhp, (dvoid **)&amp;srvhp, OCI_HTYPE_SERVER,
                        (size_t)0, (dvoid **)0);
if (status != OCI_SUCCESS)
{
    printf("OCIHandleAlloc (server handle) failed\n");
    return -1;
}

status = OCIServerAttach(srvhp, errhp, (text *)"", strlen(""), 0);
if (status != OCI_SUCCESS)
{
    check_err(errhp);
    return -1;
}

status = OCIHandleAlloc((dvoid *)envhp, (dvoid **)&amp;svchp, OCI_HTYPE_SVCCTX,
                        (size_t)0, (dvoid
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值