首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简单的ODPI-C语句执行示例给出了ORA-00922

简单的ODPI-C语句执行示例给出了ORA-00922
EN

Stack Overflow用户
提问于 2020-03-27 15:51:58
回答 1查看 113关注 0票数 0

我试图使用ODPI-C执行简单的sql查询

代码语言:javascript
复制
dpiStmt* stmt;
const char* query = "CREATE TABLE schema_name.Z_TEST(\n"
                    "    person_id NUMBER NOT NULL,\n"
                    "    first_name VARCHAR2(50) NOT NULL,\n"
                    "    last_name VARCHAR2(50) NOT NULL,\n"
                    "    PRIMARY KEY(person_id)\n"
                    ");";
dpiConn_prepareStmt(conn.connection_, 0, query, strlen(query), nullptr,0, &stmt);

if(dpiStmt_execute(stmt, DPI_MODE_EXEC_DEFAULT, nullptr) == DPI_FAILURE)
{

    throw std::runtime_error(get_context_error_string(conn.db_context_));
}

但它产生了一个错误

代码语言:javascript
复制
ERROR: ORA-00922: missing or invalid option (dpiStmt_execute : execute)

哪里

  • conn是一个具有dpiConn* connection_的结构(使用dpiErrorInfo.

进行测试,返回最后的上下文错误)。

我希望你能帮助我。

这个网站不允许我创建新的标签ODPI-C

编辑:我检查了所有关于模式名称和上下文/连接是否存在的内容

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-27 16:02:17

DDL语句的末尾不应该有分号。这是一个客户端语句分隔符,而不是语句的一部分。改为:

代码语言:javascript
复制
const char* query = "CREATE TABLE schema_name.Z_TEST(\n"
                    "    person_id NUMBER NOT NULL,\n"
                    "    first_name VARCHAR2(50) NOT NULL,\n"
                    "    last_name VARCHAR2(50) NOT NULL,\n"
                    "    PRIMARY KEY(person_id)\n"
                    ")";

在某些情况下,偏离分号会导致ORA-00911错误,而不是ORA-00922错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60889510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档