Oracle 如果列不存在,则更改表
在表中,我想检查特定列是否存在。如果该列不存在,我想更改该表并创建该列Oracle 如果列不存在,则更改表,oracle,oracle11g,alter-table,Oracle,Oracle11g,Alter Table,在表中,我想检查特定列是否存在。如果该列不存在,我想更改该表并创建该列 我正在使用Oracle 11g。查看用户选项卡列表以检查列是否存在,并相应地执行此操作。尝试以下操作: 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_
我正在使用Oracle 11g。查看用户选项卡列表以检查列是否存在,并相应地执行此操作。尝试以下操作:
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;
最终,根据您可以使用用户选项卡列的权限而定。如果您只想添加一个不存在的列,只需发出ALTER TABLE add mycolumn。。。;。如果语句引发异常ORA-01430:表中已存在要添加的列,则该列已存在,您可以忽略该异常。或者,您可以忽略错误:
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;
/
pl/sql语法的可能重复项不正确。您不能在没有开始的情况下使用DECLARE