我正在评估FLYWAY并运行一个非常简单的脚本,该脚本创建一个新表并向该表插入一行。该表创建成功但我在INSERT上收到ORA-942错误。我已经尝试了使用大/小写以及引用和不带引号的模式和表名称的每个排列。我也尝试将INSERT语句从CREATE语句分离到不同的脚本中 - 一切都无济于事。任何人都可以帮助解释INSERT语句的flyway格式需求吗?
以下是我最近尝试的陈述。我已尝试使用table_name周围的引号使用相同的语句,所有小写,模式周围没有引号 - 没有任何作用。作为SYS直接登录到数据库,我可以用这个命令描述表: desc“FLYWAY_USER”.department
CREATE TABLE "FLYWAY_USER".DEPARTMENT
( DEPARTMENT_id NUMBER(3) NOT NULL,
DEPARTMENT VARCHAR2(64) NOT NULL,
display_name VARCHAR2(64) NOT NULL,
description VARCHAR2(400),
create_date DATE NOT NULL,
update_date DATE NOT NULL,
created_by VARCHAR2(80) NOT NULL,
updated_by VARCHAR2(80) NOT NULL )
TABLESPACE users;
INSERT INTO "FLYWAY_USER".DEPARTMENT
( DEPARTMENT_id,
DEPARTMENT,
display_name,
description,
create_date,
update_date,
created_by,
updated_by )
VALUES
( ( SELECT Nvl( Max(DEPARTMENT_id), 0) + 1 FROM DEPARTMENT ),
'HUMAN_RESOURCES',
'Human Resources',
'The best place to eat smores or get a raise.',
Sysdate,
Sysdate,
'AT09001',
'AT09001' );
由于
答案 0 :(得分:1)
以SYS
的形式直接记录到数据库中
更好地使用专用应用程序用户。
无论如何,如果您使用对象的架构所有者(FLYWAY_USER)的其他用户,则必须符合所有您的参考资料。
尤其
VALUES
( ( SELECT Nvl( Max(DEPARTMENT_id), 0) + 1 FROM DEPARTMENT ),
应该是
VALUES
( ( SELECT Nvl( Max(DEPARTMENT_id), 0) + 1 FROM FLYWAY_USER.DEPARTMENT ),