为啥这会导致 oracle 错误? ORA-00907

Posted

技术标签:

【中文标题】为啥这会导致 oracle 错误? ORA-00907【英文标题】:Why does this cause an oracle error? ORA-00907为什么这会导致 oracle 错误? ORA-00907 【发布时间】:2010-02-12 07:59:53 【问题描述】:

这让我发疯了,谁能帮我理解为什么以下语句都返回以下错误?

create table JMS_PENDING_MESSAGE (id number primary key, queuex nvarchar2(200), messagex nclob(1000));
create table JMS_PENDING_MESSAGE (id number primary key, queuex nvarchar2(200), messagex nclob(10000));
create table JMS_PENDING_MESSAGE (id integer primary key, queuex nvarchar2(200), messagex nclob(10000));

还有错误信息:

ORA-00907: missing right parenthesis

如果有区别的话,我会使用 ojdbc5.jar 在 JDBC 上运行!非常感谢任何帮助,我要疯了

【问题讨论】:

【参考方案1】:

CLOB 是 CLOB(并且,正如 o.k.w. 指出的那样,NCLOB 也是 NCLOB)。你不需要给它一个大小:

create table JMS_PENDING_MESSAGE 
    (id integer primary key, queuex nvarchar2(200), messagex nclob);

【讨论】:

你的意思是“一个 NCLOB 是一个 (C)LOB”:)

以上是关于为啥这会导致 oracle 错误? ORA-00907的主要内容,如果未能解决你的问题,请参考以下文章

为啥这会导致无限循环

为啥这会导致内存泄漏?

为啥这会导致无限请求循环?

为啥这会导致无限请求循环?

CORBA:它是啥,为啥会产生“GIOP 魔法错误”?

有人可以指出代码“满足给定总和条件的子序列数”的错误,这会导致堆栈溢出错误