テーブルを削除するには SQL ステートメントを使用する必要があります。テーブルが存在しない場合はクラッシュします。IF
ステートメントを
使用してテーブルを削除することは可能ですかs.executeUpdate("DROP TABLE employee");
5 に答える
Oracle は のような構文をサポートしていませんdrop table if exists my_table
。これは明らかに MySQL (および他の RDBMS) で有効な構文です。
および/またはさまざまなオブジェクトに対して.SQL
実行DDL
しているスクリプトでは、Oracleの標準では、オブジェクトを削除し、オブジェクトが存在しない場合はエラーを無視します。必要に応じて、オブジェクトが存在するかどうかをチェックするコードを記述して (ビューを参照)、存在する場合にのみドロップすることができます。DROP
CREATE
DBA_OBJECTS
から、s.executeUpdate
Java でこれを行っていると思いますか? それが私だったら、ドロップして、存在しないエラーを無視します。
それが役立つことを願っています。
適切な権限があると仮定すると、以下のようなことができます
declare var_count int;
select count(*) INTO var_count
from all_tables where OWNER = [schema] and table_name = "EMPLOYEE";
if var_count > 0 then
begin
drop table employee;
end
pl/sql プロシージャではなくフロントエンド コードでこれを行う場合は、それに応じて調整してください。
従来の pl/sql では、ブロック内に例外セクションを指定し、削除するテーブルがない場合は例外をキャッチできます。
Oracle のエラー処理を参照してください
これにより、問題が解決されます。テーブルが存在しない場合、エラーはスローされません。
BEGIN DROP TABLE 従業員; その他が NULL の場合は例外。終わり;