資料庫之建立表前的判斷處理
對於sybase/sql server就比較簡單,可以使用
if exists(select 1 from sysobjects where id=object_id("表的名稱") and type="U")
drop table "表的名稱"
go
---然後建立即可。
但是對於oracle就沒有對應的語法。如果直接drop掉,則因為對應的對應沒有存在,會提示錯誤資訊,對於新手或者用服來說,發現錯誤的時候就會提出疑問。所以有如下簡單的辦法來處理。原理很簡單,使用user_objects資料字典和動態sql語句。
[@more@]create or replace procedure proc_dropifexists(
p_i_tablename in varchar2 -----表名字
) is
v_count number(10);
begin
----判斷當前使用者下是否有對應的表
select count(*)
into v_count
from user_objects
where object_name = upper(p_i_tablename);
if v_count > 0 then
----如果存在則使用動態sql drop掉該表
execute immediate 'drop table ' || p_i_tablename;
end if;
end proc_dropifexists;
----呼叫辦法demo
exec proc_dropifexists('a');
對於儲存過程和觸發器,sybase的處理辦法和針對表的處理辦法類似。oracle就簡單了,直接create or replace ,意即存在就刪除重建,不存在就建立,簡單明瞭。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/47869/viewspace-909666/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫優化之表碎片處理資料庫優化
- Sql Server中判斷表或者資料庫是否存在SQLServer資料庫
- 舒服的判斷當前應用是否處於前臺
- [資料庫][分庫分表]分庫分表之後,id主鍵如何處理資料庫
- 資料預處理之 pandas 讀表
- 建立資料庫表資料庫
- MySQL 建立資料庫 建立表MySql資料庫
- mysql,sqlserver資料庫單表資料過大的處理方式MySqlServer資料庫
- 根據連線的資料庫判斷資料庫型別(JAVA)資料庫型別Java
- 資料庫啟動時的判斷條件資料庫
- SQL Server實戰二:建立、修改、複製、刪除資料庫表並加以資料處理SQLServer資料庫
- 判斷資料庫中表內資料為空的辦法資料庫
- 資料庫 建立 3表資料庫
- MySQL處理資料庫和表的常用命令MySql資料庫
- Sql Server判斷資料庫、表、儲存過程、函式是否存在SQLServer資料庫儲存過程函式
- MongoDB之資料查詢(欄位判斷)MongoDB
- (十三)資料庫查詢處理之QueryExecution(2)資料庫
- DBus資料庫表結構變更處理方案資料庫
- Pytorch資料前後處理整理PyTorch
- 皕傑報表之資料校驗與處理
- Struts2 action前的資料預處理
- 資料庫之建立索引資料庫索引
- SQL建立資料庫和表SQL資料庫
- 資料處理踩過的坑(不斷更新):
- 判斷資料庫是否需要例項恢復資料庫
- js資料型別判斷和陣列判斷JS資料型別陣列
- oracle 資料庫鎖表處理 ORA-00031Oracle資料庫
- (十) 資料庫查詢處理之排序(sorting)資料庫排序
- (十二)資料庫查詢處理之Query Execution(1)資料庫
- 判斷資料型別資料型別
- ZT:處理Oracle資料庫中一張有效的Drop大表Oracle資料庫
- js資料型別的判斷JS資料型別
- 判斷值的資料型別資料型別
- 資料庫壞塊處理資料庫
- zabbix資料庫日常處理資料庫
- spring mvc 處理分庫後,判斷訪問具體哪一個庫的問題SpringMVC
- 海量資料處理_表分割槽
- 判斷當前應用程式處於前臺還是後臺 ANDROIDAndroid