create table widep(
cac NUMBER,
ddate DATE,
dtime TIMESTAMP,
type VARCHAR2,
amount NUMBER(10,2),
constraint qwe foreign key(cac) references cust(cac)
)
完整错误消息指出
Error at Command
Line:5 Column:15
这是这个位置:
type VARCHAR2,
^^^
VARCHAR2
需要一个大小参数来定义最大字符数。使用类似的东西
create table widep(
cac NUMBER,
ddate DATE,
dtime TIMESTAMP,
type VARCHAR2(100),
amount NUMBER(10,2),
constraint qwe foreign key(cac) references cust(cac)
);
必须为 VARCHAR2 指定大小。 VARCHAR2 通常需要 4000 字节(标准),如果扩展则最多可以占用 32767 字节。
我们有 2 个选项 Byte 或 Char。
BYTE 表示该列将具有字节长度语义。 CHAR 指示该列将具有字符语义。 *来源:https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF30020
万一您想使用 Java 进行迁移,这将是您的 up 方法中的等效语句。
如果你想创建一个表
@Override
public void up() {
schema.createTable("table_name").addColumn("column_name", DataType.VARCHAR2).precision(9);
}
如果您想更改表格
@Override
public void up() {
schema.alterTable("table_name").addColumn("column_name", DataType.VARCHAR2).precision(9);
}
此处使用DataType.VARCHAR2供您参考,但是,您可以从多种不同类型中进行选择。
方法 precision将添加列大小。
varchar2 需要大小,因此您需要在使用像 varchar2(20) 这样的数据类型 varchar2 时指定大小
创建表宽( cac NUMBER(10,2) 不为空, 日期日期, dtime 时间戳, 类型 VARCHAR2(50), 金额 NUMBER(10,2), 约束 cac_fk 外键 key(cac) 引用 cust(cac) );