在Oracle中使用SQL語句備份單表-造數據-還原表

在網上找來的語句備份單表的狀況。提供參考oop

--不影響往後工做的造數據步驟:
--一、備份表內的內容,
--二、清表內內容,
--三、給表造數據,
--四、還原表
------------------------------------------------------------
--一、備份表內的內容,
--create table <庫名2>.<表名2> as select * from <庫名1>.<表名1>;
--根據表1建立表2,表2的字段和數據都和表1同樣.可用於在不一樣的庫之間進行建立
--若只須要表頭不須要表數據的話,用create table <庫名2>.<表名2> as select * from <庫名1>.<表名1> where 1=0;
create table userinfo.clientinfo_2 as select * from userinfo.clientinfo_1;
------------------------------------------------------------
--二、清表內內容,
--delete <庫名>.<表名>; 
--刪掉一整個表內的數據
delete userinfo.clientinfo_1;
------------------------------------------------------------
--三、給表造數據,
--新建一個Test Window,寫語句以下:
-- Created on 2017-03-22 by ZHOUKY16712 
declare 
  -- Local variables here
  --在declare下面定義一些參數
  i integer;--定義i爲整型
  v_client_id varchar(20);--參數客戶號爲20位的字符串
  v_client_name varchar(50);--參數客戶姓名爲50位的字符串
  v_client_age integer;--參數客戶年齡爲整型
begin
  -- Test statements here
  --在begin後面開始寫執行語句
 for i in 1..20 --將i從1運行到20,進行循環
 loop 
--********************************************--
--lpad(i, 6, '0')表示一個6位的字符串,以i的值結尾,前面以0補充
--||表示拼接,'1'||<字符串>代表在字符串前拼接字符'1'
--故所有循環結束後,v_client_id 值爲1000001到1000020
--********************************************--
  v_client_id  := '1'||lpad(i, 6, '0');
  v_client_name :='zky';--名字賦值爲zky
  v_client_age:=18;--年齡爲18
  
  --給表插入數據
  --insert into<庫名>.<表名> VALUES(<字段值>,<字段值>);這種的話是依次將值挨個傳入字段內,
  --insert into<庫名>.<表名> (<字段名>,<字段名>) VALUES(<字段值>,<字段值>);這種是能夠跳躍將值傳進字段裏
  insert into userinfo.clientinfo_1 values(v_client_id,v_client_name,v_client_age); 
  end loop;--循環結束
  commit; 
end;  
------------------------------------------------------------ 
--四、還原表
delete  userinfo.clientinfo_1 ;
insert into userinfo.clientinfo_1 select * from userinfo.clientinfo_2 --把表2數據複製到表1去
drop table userinfo.clientinfo_2--把用來備份的表2刪掉。

 

 

出處:https://blog.csdn.net/zhouky1993/article/details/65449548spa

相關文章
相關標籤/搜索