无法在Visual Studio C程序上使用OCILIB连接到数据库

问题描述

我正在尝试在Visual Studio的C程序中使用OCILIB连接到数据库。我已经使用Nuget软件包安装了OCILIB软件包。

我已经编写了下面的程序来测试我的连接

void err_handler(OCI_Error* err)
{
    printf
    (
        "code  : ORA-%05i\n"
        "msg   : %s\n"
        "sql   : %s\n",OCI_ErrorGetOCICode(err),OCI_ErrorGetString(err),OCI_GetSql(OCI_ErrorGetStatement(err))
    );
}

int main()
{
    OCI_Connection* cn;
    if (!OCI_Initialize(err_handler,NULL,OCI_ENV_DEFAULT))
    {
        printf("OCI Initialzation issue");
        return 1;
    }
    
    printf("trying to create connection\n");
    cn = OCI_ConnectionCreate("localhost:1521/xe","aravind",OCI_SESSION_DEFAULT);

    if (cn)
    {

        printf("connected!!");
    }
    else
    {
        OCI_Error* err = OCI_GetLastError();
        printf("errcode <%hi>,errmsg <%s>\n",OCI_ErrorGetString(err));
        printf("NOT connected!!");
    }
    return 0;
}

错误处理程序输出:

code  : ORA-00000
msg   : E
sql   : (null)
OCI Initialzation issue

我尝试了以下所有连接类型,但没有运气

cn = OCI_ConnectionCreate("<ip>:1521/xe",OCI_SESSION_DEFAULT);
cn = OCI_ConnectionCreate("<full connection string from tnsnames>",OCI_SESSION_DEFAULT);

有人可以帮我吗?

解决方法

为OCI_Initialize()提供错误处理程序。 它将由OCILIB调用,错误详细信息将由OCI_ErrorGetString()返回。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...