テーブルで、特定の列が存在するかどうかを確認したいと思います。列が存在しない場合は、テーブルを変更してその列を作成します。
Oracle11gを使用しています。
テーブルで、特定の列が存在するかどうかを確認したいと思います。列が存在しない場合は、テーブルを変更してその列を作成します。
Oracle11gを使用しています。
これを試して:
declare p_count NUMBER;
select count(1) int p_count
from ALL_TAB_COLUMNS
where OWNER = '<SCHEMA_NAME>'
and TABLE_NAME = '<TABLE_NAME>'
and COLUMN_NAME = '<COLUMN_NAME>';
IF p_count = 0 THEN
--add your column
END IF;
最終的に(権利に応じて)を使用できますuser_tab_columns
。
列が存在しない場合に列を追加するだけの場合は、を発行するだけALTER TABLE ADD (mycolumn ...);
です。ステートメントで例外(ORA-01430: column being added already exists in table
)が発生した場合、列はすでに存在しているため、例外を無視できます。
または、エラーを無視できます。
declare
column_exists exception;
pragma exception_init (column_exists , -01430);
begin
execute immediate 'ALTER TABLE db.tablename ADD columnname NVARCHAR2(30)';
exception when column_exists then null;
end;
/
user_tab_columnsテーブルを調べて、列が存在するかどうかを確認し、それに応じて実行します