使用MSSQL - 只有當它存在我可以刪除同義詞: DROP SYNONYM (Transact-SQL)甲骨文 - 降同義詞IF EXISTS
但在甲骨文(11克)下降代名詞使我的劇本,如果它不退出錯誤,有沒有如何模仿它存在的MSSQL?
使用MSSQL - 只有當它存在我可以刪除同義詞: DROP SYNONYM (Transact-SQL)甲骨文 - 降同義詞IF EXISTS
但在甲骨文(11克)下降代名詞使我的劇本,如果它不退出錯誤,有沒有如何模仿它存在的MSSQL?
可以使用PLSQL匿名塊:
begin
execute immediate 'drop synonym YOUR_SYNONYM';
exception
when others then
if sqlcode != -1434 then
raise;
end if;
end;
/
如果存在的話它會降低你的代名詞。如果它不存在,它只會抑制錯誤。它會向調用者提出除「同義詞不存在」之外的任何錯誤。
您可以使用編譯指示來定義可以處理的異常。 假設你在一個循環做的事情......
declare
NOSYN exception;
pragma exception_init (NOSYN, -1434);
/* 1434 is the Oracle error for synonym does not exist */
begin
/*
* Loop here where you synonym name gets assigned to the variable mysyn
*/
begin
execute immediate 'drop synonym '||mysyn;
exception
when NOSYN then
dbms_output.put_line('Synonym does not exist... skipping');
end;
end loop;
end;
/
難道我提供的解決方案停止爲你工作?你現在接受的答案或多或少是我的副本。 – GurV
我不好,恢復了。 – user648026