我正在尝试使用类似的变量来重命名和删除表:
variable new_table varchar2(30);
exec :new_table := 'TABLE_LERO_' || TO_CHAR (SYSDATE, 'MM_DD_YYYY');
ALTER TABLE TABLE_LERO RENAME TO :new_table;
但是sqlplus抱怨:
ORA-00903: invalid table name
任何人都可以帮助或解释为什么这不起作用以及如何做同样的工作?
谢谢!
答案 0 :(得分:3)
declare
l_newtablename varchar2(50);
begin
l_newtablename := 'TABLE_LERO_' || TO_CHAR (SYSDATE, 'MM_DD_YYYY');
execute immediate 'ALTER TABLE TABLE_LERO RENAME TO ' || l_newtablename;
end;
/