Apex SQL Workshop提示‘无效数据类型’,SQL建表语句问题咨询
解决Apex SQL Workshop创建表时的"invalid datatype"错误
报错的核心原因是:Apex SQL Workshop基于Oracle数据库,而Oracle不支持SQL层面的原生BOOLEAN数据类型,你的语句里tem_prova_titulos BOOLEAN这一行触发了类型错误。
以下是不改变表结构语义(字段逻辑用途不变)的可行解决方案:
替代方案1:用CHAR(1)模拟BOOLEAN(推荐)
CREATE TABLE informacoes_concurso_publico ( id_concurso_publico INTEGER PRIMARY KEY, forma_exame VARCHAR(50), vagas_totais INTEGER, vagas_ampla_concorrencia INTEGER, vagas_pcd INTEGER, tem_prova_titulos CHAR(1) CHECK (tem_prova_titulos IN ('Y', 'N')), FOREIGN KEY (id_concurso_publico) REFERENCES concursos_publicos(id_concurso_publico) );
替代方案2:用NUMBER(1)模拟BOOLEAN
CREATE TABLE informacoes_concurso_publico ( id_concurso_publico INTEGER PRIMARY KEY, forma_exame VARCHAR(50), vagas_totais INTEGER, vagas_ampla_concorrencia INTEGER, vagas_pcd INTEGER, tem_prova_titulos NUMBER(1) CHECK (tem_prova_titulos IN (0, 1)), FOREIGN KEY (id_concurso_publico) REFERENCES concursos_publicos(id_concurso_publico) );
说明
两种方案都是用Oracle支持的类型搭配CHECK约束,完全模拟BOOLEAN的真/假逻辑:
- 方案1用'Y'代表真、'N'代表假
- 方案2用1代表真、0代表假
字段的语义和原表设计完全一致,相当于没有修改表的逻辑结构。
内容的提问来源于stack exchange,提问作者Space
相关产品推荐
相关产品推荐

