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 语句。)