Sql 为什么这个CREATETABLE语句会导致;ORA-00922缺少或无效选项;?
我使用SQLDeveloper(工具->卸载数据库)从一个Oracle数据库导出了一个模式。它创建了与此类似的“create table”语句:Sql 为什么这个CREATETABLE语句会导致;ORA-00922缺少或无效选项;?,sql,oracle,oracle-sqldeveloper,Sql,Oracle,Oracle Sqldeveloper,我使用SQLDeveloper(工具->卸载数据库)从一个Oracle数据库导出了一个模式。它创建了与此类似的“create table”语句: CREATE TABLE "APP_USER" ( "ID" NUMBER(*,0), "USERNAME" VARCHAR2(200), "PASSWORD" NVARCHAR2(200), "TYPE" VARCHAR2(20), "FIRST_NAME" VARCHAR2(100),
CREATE TABLE "APP_USER"
( "ID" NUMBER(*,0),
"USERNAME" VARCHAR2(200),
"PASSWORD" NVARCHAR2(200),
"TYPE" VARCHAR2(20),
"FIRST_NAME" VARCHAR2(100),
"LAST_NAME" VARCHAR2(100)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "LIS_DATA" ;
但是,当我尝试在另一个数据库上执行代码时,它也会触发“ORA-00922缺少或无效选项”
显然,查询的存储部分(以“SEGMENT”开头,以“DEFAULT”结尾)有问题,因为如果我删除它,它就会工作。但到底是什么呢
我只是一名应用程序开发人员,碰巧必须与Oracle合作。我对SQL没什么意见,但这个Oracle存储参数的东西对我来说是中文的。另外,我对SQL Developer生成无效代码感到困惑…我不熟悉“立即创建段”。这似乎是一个11G功能。可能您正试图在旧版本数据库上使用11G功能创建表。来源:
ORA-00922:选项缺失或无效原因:
选择了无效的选项
在定义列或存储子句时指定。中的有效选项
指定列不为NULL以指定该列不能为空
包含任何空值。数据类型后面只能有约束。
指定日期或长数据类型的最大长度也会导致
这是一个错误。操作:更正语法。删除错误的选项或
柱的长度规格或存储规格
我想你成功了。我导出的DB是11g,我尝试导入10g。谢谢