OCI:执行 CREATE 和 DROP 时出错 table
OCI: ERROR while executing CREATE and DROP table
我正在使用 C API 在 oracle 数据库中创建和删除表。代码片段是
OCIStmt *stmt;
rc = OCIHandleAlloc(ora_env, (dvoid **)&stmt, OCI_HTYPE_STMT, 0, 0);
char *query = "DROP TABLE idmap_id;";
rc = OCIStmtPrepare(stmt, errhp, (OraText*)query, strlen(query), OCI_NTV_SYNTAX, OCI_DEFAULT);
rc = OCIStmtExecute(svchp, stmt, errhp, 1, 0, NULL, NULL, OCI_DEFAULT);
当我 运行 这个 DROP TABLE 查询时,我得到以下错误
OCIStmtExecute() ORA-00933: SQL command not properly ended
当我像这样用 CREATE TABLE 替换查询时
char *query = "CREATE TABLE idmap_id (id varchar2(32 CHAR) NOT NULL, CONSTRAINT idmap_id_pk PRIMARY KEY (id));";
我收到错误
OCIStmtExecute() ORA-00922: missing or invalid option
谁能帮帮我?
删除分号。
(我猜 Oracle 期望在它之后有另一个 SQL 语句。)
我正在使用 C API 在 oracle 数据库中创建和删除表。代码片段是
OCIStmt *stmt;
rc = OCIHandleAlloc(ora_env, (dvoid **)&stmt, OCI_HTYPE_STMT, 0, 0);
char *query = "DROP TABLE idmap_id;";
rc = OCIStmtPrepare(stmt, errhp, (OraText*)query, strlen(query), OCI_NTV_SYNTAX, OCI_DEFAULT);
rc = OCIStmtExecute(svchp, stmt, errhp, 1, 0, NULL, NULL, OCI_DEFAULT);
当我 运行 这个 DROP TABLE 查询时,我得到以下错误
OCIStmtExecute() ORA-00933: SQL command not properly ended
当我像这样用 CREATE TABLE 替换查询时
char *query = "CREATE TABLE idmap_id (id varchar2(32 CHAR) NOT NULL, CONSTRAINT idmap_id_pk PRIMARY KEY (id));";
我收到错误
OCIStmtExecute() ORA-00922: missing or invalid option
谁能帮帮我?
删除分号。
(我猜 Oracle 期望在它之后有另一个 SQL 语句。)