请问有人能指导我这个查询有什么问题吗?在SQL Server中,我们只需要检查表的Object_ID是否存在,就可以删除并重新创建它。我是Oracle的新手,写了这个查询:
declare Table_exists INTEGER;
BEGIN
Select count(*) into Table_exists from sys.all_tables where table_name='TABLENAME1';
EXCEPTION
WHEN NO_DATA_FOUND
THEN
Table_Exists :=0;
if(table_exists)=1
Then
Execute Immediate 'Drop Table TABLENAME1;'
'Create Table TABLENAME1;';
DBMS_OUTPUT.PUT_LINE('Table Dropped and Re-Created!');
Else
Execute Immediate 'Create Table TABLENAME1;';
DBMS_OUTPUT.PUT_LINE('New Table Created!');
END IF;
END;
我收到 "ANONYMOUS BLOCK COMPLETED" 的输出,但表格并没有被创建。该表之前已经存在,我删除了它以检查 PL/SQL 是否真的在创建表格,但结果是否定的。这里出了什么问题?我缺少了什么?请指导。