You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle复制表报错ORA-00922:CREATE TABLE LIKE语句遇无效选项

ORA-00922: missing or invalid option 错误排查与解决

错误原因

Oracle数据库不支持CREATE TABLE ... LIKE ...语法,该写法属于MySQL等其他数据库的语法规范,Oracle无法识别LIKE关键字在该位置的用法,因此抛出“缺失或无效选项”的错误。

解决方法

方法1:仅复制表结构(不含数据)

使用CREATE TABLE ... AS SELECT语法,通过WHERE 1=0过滤数据,只复制表的列定义和数据类型:

CREATE TABLE ZMMM_END1 AS SELECT * FROM ZMMM_END WHERE 1=0;

注意:此方式不会复制源表的主键、外键、唯一约束、索引、触发器等对象,需手动补充创建。

方法2:完整复制表结构(含约束、索引等)

利用Oracle的DBMS_METADATA包生成源表的完整DDL语句,修改表名后执行即可复制所有结构对象:

-- 获取源表的建表DDL
SELECT DBMS_METADATA.GET_DDL('TABLE', 'ZMMM_END') FROM DUAL;

将查询结果中的表名ZMMM_END替换为ZMMM_END1,执行修改后的DDL语句即可完成完整复制。

方法3:手动定义表结构

若仅需复制部分列,可手动指定列及数据类型:

CREATE TABLE ZMMM_END1 (
    -- 示例:按源表列定义手动列出
    ID NUMBER(10),
    NAME VARCHAR2(50),
    CREATE_DATE DATE
);

后续按需添加约束、索引等对象。

内容的提问来源于stack exchange,提问作者DANIEL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:42:02