ИЗМЕНИТЕ СТОЛБЕЦ в оракуле - Как проверить, nullable ли столбец прежде, чем установить на nullable?

Вы ищете следующий URL:

twitter:///user?screen_name=PAGE

Обратите внимание, что Twitter установлен не на всех устройствах. Вам следует проверить результат метода openURL. Если это не удается, откройте страницу в Safari с обычным URL.

35
задан Jay S 22 June 2009 в 19:22
поделиться

2 ответа

Вы можете сделать это в PL / SQL:

declare
  l_nullable user_tab_columns.nullable%type;
begin
  select nullable into l_nullable
  from user_tab_columns
  where table_name = 'MYTABLE'
  and   column_name = 'MYCOLUMN';

  if l_nullable = 'N' then
    execute immediate 'alter table mytable modify (mycolumn null)';
  end if;
end;
45
ответ дан 27 November 2019 в 07:02
поделиться

просто выполните изменение таблицы и перехватите исключение.

DECLARE
   allready_null EXCEPTION;
   PRAGMA EXCEPTION_INIT(allready_null, -1451);
BEGIN
   execute immediate 'ALTER TABLE TAB MODIFY(COL  NULL)';
EXCEPTION
   WHEN allready_null THEN
      null; -- handle the error
END;
/

если вы не хотите использовать PL / SQL

    set feedback off
    set echo off
    set feedback off
    set pages 0
    set head off

    spool to_null.sql

    select 'alter table TAB modify (COL NULL);' 
    from user_tab_columns
    where table_name = 'TAB'
    and column_name = 'COL'
    and nullable = 'N';

    spool off
    set feedback on
    set echo on
    set termout on
    @@to_null.sql 
    host rm -f to_null.sql

или просто выполните изменение таблицы и проигнорируйте ошибку.

]
21
ответ дан 27 November 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: