Как сделать столбец nullable oracle
Как я могу ALTER COLUMN к NULL, когда колонка в не NULL в Oracle, с предложением или сценарием?
1 ответ
Я пытаюсь заменить коллегу в выполнении какой-то работы Oracle и наткнулся на загвоздку. В попытке написать скрипт, чтобы изменить столбец допускает значение null, я столкнулся с прекрасной ошибки ORA-01451 : ORA-01451: column to be modified to NULL cannot be modified to NULL Это происходит.
Я работаю в SQL Server 2008 R2 и написал хранимую процедуру, которая добавляет ограничения к нескольким столбцам в нескольких таблицах моей базы данных. Однако я нахожу, что хранимая процедура терпит неудачу, потому что она не может установить конкретный столбец в качестве первичного ключа из-за.
Чтобы изменить столбец (при условии, что текущий тип varchar2(100) ):
Интересно, что это не удается, если столбец уже обнуляется.
Похожие вопросы:
Я использую ORACLE и знаю, что вы не можете DROP столбец, который имеет ограничение not null. Сначала вы должны изменить его, чтобы он стал недействительным, а затем вы можете отбросить его. Если.
У меня есть столбец Column , который объявлен как NULL DEFAULT(GETUTCDATE()) , и есть некластеризованный индекс, который включает этот столбец. Я хочу изменить этот столбец на NOT NULL.
Используя Oracle, мне нужно получить Предыдущее значение только для заполнения столбца . У меня есть sealing_id столбец и assay_id столбец. Я стараюсь : LAG(sealing_id, 1) OVER (ORDER BY service_id.
Я пытаюсь заменить коллегу в выполнении какой-то работы Oracle и наткнулся на загвоздку. В попытке написать скрипт, чтобы изменить столбец допускает значение null, я столкнулся с прекрасной ошибки.
Я работаю в SQL Server 2008 R2 и написал хранимую процедуру, которая добавляет ограничения к нескольким столбцам в нескольких таблицах моей базы данных. Однако я нахожу, что хранимая процедура.
Как обновить столбец возраста, если столбец возраста null основан на столбце даты рождения в oracle? таблица t1: (исходная таблица) Name dob age aaa 12-JUN-1985 bbb 15-MAY-1991 ccc 23-AUG-2000.
У меня есть таблица, которая содержит столбец первичного ключа, который автоматически увеличивается из приложения. Как я могу изменить столбец, чтобы он был столбцом идентификаторов в Oracle 12c? В.
как вставить в столбец значение, если столбец =NULL У меня есть таблица 'board' со столбцом 'name', какой-то столбец имеет значение , какой-то имеет значение NULL, мне нужно вставить во все столбцы.
У меня есть столбец местоположения в таблице XYZ в таблице db2, теперь я хочу изменить его на not null и использовать приведенную ниже команду ALTER стол АБВ изменить идентификатор locationId набор.
Как сделать столбец NULLable (varchar2(20)) не NULL таблицы в oracle, где у меня есть более 1 миллиона записей в таблице
у меня есть таблица с несколькими целочисленными столбцами nullable. Это нежелательно по нескольким причинам, поэтому я хочу обновить все нули до 0, а затем установить эти столбцы в NOT NULL . Помимо изменения нулей на 0 , данные должны быть сохранены.
Я ищу специфический синтаксис SQL чтобы изменить столбец (назовите его ColumnA ) в " not null ". Предположим, что данные были обновлены, чтобы не содержать нулей.
используя SQL server 2000.
во-первых, сделайте все текущие значения NULL исчезают:
затем обновите определение таблицы, чтобы запретить нули:
У меня была та же проблема, но поле использовалось по умолчанию для null, и теперь я хочу по умолчанию 0. Это потребовало добавления еще одной строки после решения mdb:
вам придется сделать это в два шага:
- обновите таблицу, чтобы в столбце не было нулей.
- изменить таблицу, чтобы изменить свойства столбца
для Oracle 11g я смог изменить атрибут столбца следующим образом:
пока столбец не является уникальным идентификатором
измените таблицу и установите для поля значение non null и укажите значение по умолчанию 0
это сработало для меня:
это кажется проще, но работает только на Oracle:
кроме того, с помощью этого вы также можете добавлять столбцы, а не просто изменять их. Он обновляет значение по умолчанию (0) в этом примере, если значение было null.
в моем случае у меня были трудности с ответами. В итоге я использовал следующее:
изменить VARCHAR(200) в свой тип данных, и при необходимости измените значение по умолчанию.
Если у вас нет значения по умолчанию, у вас будет проблема с этим изменением, так как по умолчанию будет null, создающий конфликт.
в случае FOREIGN KEY CONSTRAINT . будет проблема, если "0" отсутствует в столбце таблицы первичного ключа. Решение для этого есть.
Шаг 1:
отключить все ограничения, используя этот код :
Шаг 2:
Шаг 3:
включить все ограничения с помощью этого кода:
создание столбца не null и добавление по умолчанию также можно сделать в GUI SSMS.
- как уже заявили другие, вы не можете установить "not null", пока все существующие данные "не null", например:
UPDATE myTable SET myColumn = 0
- как только это будет сделано, с таблицей в представлении дизайна (щелкните правой кнопкой мыши таблица и нажмите "design view"), вы можете просто снять флажок разрешить Nulls столбцы как Итак:
- все еще в проектном виде с выбранным столбцом вы можете увидеть Свойства Столбца в окне ниже и установите значение по умолчанию 0 там, а также так:
для встроенного javaDB, включенного в JDK (поддерживаемый Oracle дистрибутив Apache Derby), ниже работало для меня
У меня есть столик в Oracle. Эта таблица имеет, среди прочего: ИД_СОТРУДНИКА (NUMBER, допускающий значение null, но количество NULLs равно 0) и EMPLOYEE_NUMBER (VARCHAR2, допускающий значение null, но количество NULLs равно 0). Теперь я создаю представление на этой таблице: CREATE OR REPLACE FORCE.
На сервере SQL у меня есть таблица со столбцом, определенным как not nullable. И у меня есть хранимая процедура, выполняющая некоторые соединения, так что результирующий выходной столбец для этого поля на самом деле никогда не будет null. В EF5 у меня есть сложный тип для этого вывода, который был.
Ограничение NOT NULL указывает, что столбец не может содержать значений NULL. Чтобы добавить ограничение NOT NULL к существующей таблице, используйте инструкцию ALTER TABLE .
В этом случае column_name не должен содержать никакого значения NULL до применения ограничения NOT NULL.
Похожие вопросы:
Я использую AWS RDS Microsoft SQL Server 2014-12.0.4422.0 (X64). Попытка создать тестовую таблицу. create table t1(id int not null, s varchar) on [primary] Но s столбец не null-способен. SELECT.
Я пытаюсь заменить коллегу в выполнении какой-то работы Oracle и наткнулся на загвоздку. В попытке написать скрипт, чтобы изменить столбец допускает значение null, я столкнулся с прекрасной ошибки.
Я использую первый подход к базе данных SQL Server 2008 и Entity framework 4.1 . Есть ли какой-нибудь способ создать null-способный вычисляемый столбец ? Я не могу так творить : Alter Table Employee.
У меня есть столик в Oracle. Эта таблица имеет, среди прочего: ИД_СОТРУДНИКА (NUMBER, допускающий значение null, но количество NULLs равно 0) и EMPLOYEE_NUMBER (VARCHAR2, допускающий значение null.
На сервере SQL у меня есть таблица со столбцом, определенным как not nullable. И у меня есть хранимая процедура, выполняющая некоторые соединения, так что результирующий выходной столбец для этого.
Я должен написать SQL выберите утверждение, которое является допустимым для MS SQL Server и Oracle. Мне приходится работать со старыми клиентскими базами данных, поэтому я ничего не могу изменить в.
У нас есть таблица Oracle, определенная с виртуальным столбцом (nullable). По ряду причин мы решили, что этот столбец должен быть сгенерирован заранее и заполнен как обычно. Можно ли изменить.
В случае Oracle DB, если у меня есть столбец Nullable и контрольное ограничение для того же столбца, ограничивающее значения, скажем, 'ABC' или 'DEF', могу ли я вставить строку со значением null в.
У меня есть DataGrid , привязанный к DataTable . Некоторые колонки имеют тип double. Как вы знаете, double не принимает значение null , а столбец не принимает double ? (или Nullable<double> ).
Есть, наверное, по крайней мере 10 вопросов, очень похожих на этот, но я до сих пор не нашел четкого ответа. Как я могу добавить нулевой строковый столбец в DataFrame, используя scala? Мне удалось.
У меня есть таблица с именем CUSTOMER , с несколькими столбцами. Один из них- Customer_ID .
Первоначально столбец Customer_ID WILL NOT принимает значения NULL .
Я внес некоторые изменения с уровня кода, так что столбец Customer_ID будет принимать значения NULL по умолчанию.
Теперь мое требование заключается в том, что мне нужно снова сделать так, чтобы этот столбец принимал значения NULL .
Для этого я добавил выполнение приведенного ниже запроса:
Я получаю следующую ошибку:
Это потому, что я уже сделал столбец Customer_ID для принятия значений NULL .
Есть ли способ проверить, будет ли столбец принимать значения NULL перед выполнением приведенного выше запроса.
4 ответа
Я пытаюсь заменить коллегу в выполнении какой-то работы Oracle и наткнулся на загвоздку. В попытке написать скрипт, чтобы изменить столбец допускает значение null, я столкнулся с прекрасной ошибки ORA-01451 : ORA-01451: column to be modified to NULL cannot be modified to NULL Это происходит.
Я пытаюсь добавить столбец CLOB в таблицу (на самом деле измените VARCHAR на CLOB, но это кажется возможным только путем добавления нового столбца, копирования и удаления старого). Столбец не должен быть NULL без значения по умолчанию (и таблица не пуста). Как я могу этого достичь? Моя.
Вы можете использовать столбец NULLABLE в USER_TAB_COLUMNS . Это говорит вам, допускает ли столбец значения null с использованием двоичного флага Y/N.
Если бы вы хотели поместить это в сценарий, вы могли бы сделать что-то вроде:
Лучше не использовать dynamic SQL для изменения таблиц. Сделайте это вручную и обязательно сначала все перепроверьте.
Или вы можете просто проигнорировать ошибку:
Я сделал что-то подобное, и это сработало отлично. Попробуйте выполнить запрос, если возникнет какая-либо ошибка, поймайте SQLException .
Правильно ли это делать?
Чтобы изменить ограничения существующей таблицы
например. добавьте ограничение not null в столбец.
Затем выполните следующие действия:
1) Выберите таблицу, в которой вы хотите изменить изменения.
2) Нажмите на Actions.. ---> выберите столбец ----> добавить.
3) Теперь укажите имя столбца, тип данных, размер и т.д. и нажмите кнопку ОК.
4) Вы увидите, что столбец добавлен в таблицу.
5) Теперь нажмите на кнопку Edit , лежащую слева от кнопки Actions .
6) Затем вы получите различные варианты изменения таблицы.
7) Выберите column из списка.
8) Выберите конкретный столбец, в котором вы хотите указать not null .
9) Выберите Cannot be null из column properties .
Похожие вопросы:
Как я могу ALTER COLUMN к NULL, когда колонка в не NULL в Oracle, с предложением или сценарием?
Используя Oracle, мне нужно получить Предыдущее значение только для заполнения столбца . У меня есть sealing_id столбец и assay_id столбец. Я стараюсь : LAG(sealing_id, 1) OVER (ORDER BY service_id.
Я пытаюсь заменить коллегу в выполнении какой-то работы Oracle и наткнулся на загвоздку. В попытке написать скрипт, чтобы изменить столбец допускает значение null, я столкнулся с прекрасной ошибки.
Я пытаюсь добавить столбец CLOB в таблицу (на самом деле измените VARCHAR на CLOB, но это кажется возможным только путем добавления нового столбца, копирования и удаления старого). Столбец не должен.
Согласно советам и методам настройки производительности Oracle 9i, использование IS NULL или IS NOT NULL будет подавлять индекс столбца-если на столбце есть индекс, и рекомендует сделать столбец не.
Я должен написать SQL выберите утверждение, которое является допустимым для MS SQL Server и Oracle. Мне приходится работать со старыми клиентскими базами данных, поэтому я ничего не могу изменить в.
Как обновить столбец возраста, если столбец возраста null основан на столбце даты рождения в oracle? таблица t1: (исходная таблица) Name dob age aaa 12-JUN-1985 bbb 15-MAY-1991 ccc 23-AUG-2000.
Я пытался получить нули при выполнении функции SUM() на sql и выяснил, что sql теперь рассматривает нули, так что если столбец имеет другое значение и значение null, то sum хорошо вычисляется.
Как сделать столбец NULLable (varchar2(20)) не NULL таблицы в oracle, где у меня есть более 1 миллиона записей в таблице
Читайте также: