Удалить таблицу, только если она существует, или игнорировать ошибку удаления

Вы можете поместить ^ в начале набора символов в соответствие с любым, кроме этих символов.

[^=]*

будет соответствовать всем, кроме =

0
задан bobbyrne01 6 March 2019 в 12:53
поделиться

2 ответа

Это часто задаваемые вопросы

Существует более одного способа сделать это.

Вы можете использовать составной SQL в своем сценарии с обработчиком продолжения для SQLSTATE, соответствующего ошибке, которую вы получаете, если таблица не найдена, но для этого также необходимо использовать альтернативный разделитель операторов, как показано ниже

--#SET TERMINATOR @

set current schema myschema@

BEGIN
 DECLARE CONTINUE HANDLER FOR SQLSTATE '42704'
   BEGIN end;
 EXECUTE IMMEDIATE 'DROP TABLE MYLOG';
END @

CREATE TABLE MYLOG(... )@

Вы также можете изменить логику abort-on-first-error (если вы используете + s при запуске скрипта через командную строку). Вы можете изменить параметры Db2 CLP на лету в вашем скрипте с помощью update command options using s off (чтобы продолжить при ошибке) или update command options using s on, чтобы отменить при ошибке.

0
ответ дан mao 6 March 2019 в 12:53
поделиться

с помощью этого запроса

select tabname from syscat.tables where 
tabschema='myschema' and tabname='MYLOG'

проверьте эту таблицу в вашей схеме

, если существует,

drop table myschema.MYLOG

, затем создайте

0
ответ дан Zaynul Abadin Tuhin 6 March 2019 в 12:53
поделиться
Другие вопросы по тегам:

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