我有一个要在其中执行此SQL查询的数据库:
ALTER TABLE PARAM_DEF MODIFY UNIT VARCHAR2(400 BYTES);
在SQL Server中,它可以正常工作,但是在Oracle中,我收到此错误:
Error report -
SQL Error: ORA-00907: missing right parenthesis
00907. 00000 - "missing right parenthesis"
为什么它在我的Oracle数据库上不起作用?
答案 0 :(得分:3)
keywords for character length semantics是CHAR
和BYTE
-不是BYTES
,因此请将其更正为:
ALTER TABLE PARAM_DEF MODIFY UNIT VARCHAR2(400 BYTE);
演示:
create table param_def (unit varchar2(200 byte));
Table PARAM_DEF created.
ALTER TABLE PARAM_DEF MODIFY UNIT VARCHAR2(400 BYTE);
Table PARAM_DEF altered.
desc param_def
Name Null? Type
---- ----- -------------
UNIT VARCHAR2(400)
答案 1 :(得分:2)
删除varchar2中的bytes
ALTER TABLE PARAM_DEF MODIFY
UNIT VARCHAR2(400);