Intereting Posts
Создание значений строк в значениях столбцов – SQL PIVOT T-SQL вычисляет скользящее среднее SqlDataReader.HasRows возвращает false, поскольку обновление SQL 2008 Как создать и выполнить динамический запрос в хранимой процедуре oracle? Проектирование неперекрывающихся событий даты и времени Почему последовательности не обновляются, когда COPY выполняется в PostgreSQL? Исходное значение последовательной колонки в другом столбце во время того же INSERT ограничить отдельное ключевое слово до одного столбца Является ли NATURAL (JOIN) опасным в производственной среде? Какой часовой пояс выполняет MySQL NOW () Как синхронизировать две таблицы MySQL? Разделенная разделенная запятыми строка SQL Как вы относитесь к отношениям m..n в реляционной базе данных? Функции с переменным количеством входных параметров Как использовать GROUP BY для подсчета новой категории и старых категорий сразу

Boolean дает неверный тип данных – Oracle

Я пытаюсь создать таблицу в Oracle SQL Developer, но я получаю ошибку ORA-00902.

Вот моя схема для создания таблицы

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, <-- the line giving the error --> CONSTRAINT APPOINTMENT_PK PRIMARY KEY (Appointment) ); 

Что я делаю не так?

заранее спасибо

Oracle не поддерживает boolean тип данных на уровне схемы, хотя он поддерживается в блоках PL / SQL. По уровню схемы я имею в виду, что вы не можете создавать столбцы таблицы с типом в виде boolean и вложенных типов таблиц записей с одним из столбцов в виде boolean . У вас есть эта свобода в PL / SQL, хотя вы можете создать коллекцию типа записи с булевым столбцом.

В качестве обходного пути я бы предложил использовать тип CHAR(1 byte) , так как для хранения вашего значения потребуется всего один байт, а не два байта для формата NUMBER . Подробнее о типах и размерах данных читайте здесь в Oracle Docs.

Последнее, что я слышал, что в оракуле не было boolean типа. Вместо этого используйте number(1) !

Oracle не поддерживает логическое значение для типа столбца таблицы. Вероятно, вы должны использовать CHAR (1) (Y / N)

Вы можете узнать больше об этом другом ответе

я думаю, что у вас получилось менее хороший результат

http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/datatypes.htm#CJACJGBG