布尔值给出无效的数据类型 - Oracle

17 浏览
0 Comments

布尔值给出无效的数据类型 - Oracle

我正在尝试在Oracle SQL Developer中创建一张表,但是遇到了ORA-00902错误。\n以下是我用于创建表的模式:\n

CREATE TABLE APPOINTMENT(
    Appointment NUMBER(8) NOT NULL,
            PatientID NUMBER(8) NOT NULL,
            DateOfVisit DATE NOT NULL,
            PhysioName VARCHAR2(50) NOT NULL,
            MassageOffered BOOLEAN NOT NULL, <-- 出错的那一行 -->
            CONSTRAINT APPOINTMENT_PK PRIMARY KEY (Appointment)
);

\n我做错了什么?\n提前感谢。

0
0 Comments

Oracle数据库不支持boolean类型作为表列的数据类型。你应该使用CHAR(1)代替(Y/N)。

你可以在这个回答中找到更多信息。

(Boolean giving invalid datatype - Oracle)这个问题的出现的原因是Oracle数据库不支持boolean类型作为表列的数据类型。解决方法是使用CHAR(1)代替boolean类型,并将其设置为(Y/N)。

详细解决方法可以参考以下内容:

-- 创建一个示例表
CREATE TABLE example (
  id NUMBER,
  is_valid CHAR(1)
);
-- 插入数据
INSERT INTO example (id, is_valid)
VALUES (1, 'Y');
-- 查询数据
SELECT * FROM example;
-- 结果应该类似于:
-- ID | IS_VALID
-- 1  | Y

通过将boolean类型替换为CHAR(1),我们可以在Oracle数据库中存储和查询类似于(Y/N)的布尔值。

你也可以参考这个回答获取更多相关信息。

0
0 Comments

在Oracle中,虽然在PL/SQL块中支持boolean数据类型,但在模式级别上不支持。在这里,所谓的模式级别指的是不能创建类型为boolean的表列,也不能创建带有一个列为boolean的记录的嵌套表类型。然而,在PL/SQL中可以创建一个带有boolean列的记录类型集合。

作为一种解决方法,建议使用CHAR(1 byte)类型,因为它只需要一个字节来存储值,而NUMBER格式需要两个字节。在Oracle文档的这里可以了解更多关于数据类型和大小的信息。

0
0 Comments

a boolean datatype.

0