sql - 尝试在 SQL 中创建新表时出错
问题描述
我正在做一些 SQL 练习,其中一个要求我运行创建新表的给定代码
CREATE TABLE TDEPTO_1 (
NUMDE INTEGER,
NUMCE INTEGER,
DIREC INTEGER,
TIDIR TEXT,
PRESU INT,
DEPDE INT,
NOMDE TEXT,
CONSTRAINT [PK] PRIMARY KEY ([NUMDE])
);
但是当我尝试在 Oracle Application Express 中运行它时,它会显示此错误消息
ORA-00902: 无效的数据类型
解决方案
TEXT
Oracle 中不存在该数据类型。您想使用VARCHAR2(n)
,其中n
是您的列可以允许的最大字节数(最大 4000 字节)。
取决于您的 Oracle 版本,INT
并且INTEGER
可能有效,但最好使用PLS_INTEGER
此外,您应该删除[]
约束定义中的方括号 ( ),因为这也会在 Oracle 中产生错误。
尝试(将 更改100
为所需的文本长度):
CREATE TABLE TDEPTO_1 (
NUMDE PLS_INTEGER,
NUMCE PLS_INTEGER,
DIREC PLS_INTEGER,
TIDIR VARCHAR2(100),
PRESU PLS_INTEGER,
DEPDE PLS_INTEGER,
NOMDE VARCHAR2(100),
CONSTRAINT PK PRIMARY KEY (NUMDE)
);
推荐阅读
- python - 将 StringIO 输出作为 os.path 的参数传递给子进程 popen 中的对象
- module - 在单独的文件中定义特征
- python - 如何使用回调更新函数内的数据表?
- axios - VueJs - 使用 Axios.post 创建记录时需要增加进度条的百分比
- tensorflow - 为什么当我再次继续重新训练时,验证准确度会显着提高?
- javascript - 如何添加操作以响应与类组件的方法交互的导航标题按钮?
- firebase - 如何获取firebase中具有重复值的字段的长度(如类别)
- amazon-web-services - 使用 aws education 访问 aws root 用户
- ios - 如何在两个特定时间之间触发重复的本地通知
- gremlin - Gremlin:如何从输出中省略空元素