Oracle
 sql >> база данни >  >> RDS >> Oracle

Потискане на грешки ORA-00942 в скриптове за създаване на ddl

В идеалния случай трябва да поддържаме нашата схема правилно, като използваме най-добрите практики за контрол на източника и управление на конфигурацията. В този сценарий знаем предварително дали схемата, срещу която изпълняваме нашите скриптове, съдържа тези таблици. Не получаваме грешки, защото не се опитваме да премахнем таблици, които не съществуват.

Това обаче не винаги е възможно. Един алтернативен подход е да имате два скрипта. Първият скрипт има само операторите DROP TABLE, предшествани от приятелски

PROMPT  It is safe to ignore any ORA-00942 errors in the following statements

Вторият скрипт съдържа всички оператори CREATE TABLE и води с

PROMPT  All the statements in this script should succeed.  So investigate any errors

Друга възможност е да използвате речника на данните:

begin
    for r in ( select table_name from user_tables )
    loop
        execute immediate 'drop table '||r.table_name
                    ||' cascade constraints';
    end loop;
end;

Внимавайте с този. Това е ядрената опция и ще премахне всяка таблица във вашата схема.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Простото извикване на getColumnName(0) извежда невалиден индекс на колона:getValidColumnIndex

  2. скрипт, който изтегля данни от txt файл в клаузата where

  3. как да извикам един съхранен процес от прашник и да модифицирам рекурсора, който се връща?

  4. Oracle APEX:изскачащо меню

  5. Как да изберем доставчик на Oracle за .Net приложение?