資料庫的數據存儲怎麼更新
『壹』 Oracle存儲過程,更新大量數據,如何循環分批次提交
可通過以下方法:
以100條數據為例,如果海量數據可參考。
如test表中有如下數據:
sql">declare
iint;--定義變數
v_countint;--定義變數
v_loopint;--定義變數
begin
selectcount(*)intov_countfromtest;--計算表內數據總數
selectceil(v_count/10)intov_loopfromal;--計算需要循環次數
i:=1;--為i賦值
whilei<=v_looploop--循環退出條件
updatetestsetbegintime=<=10;--執行更新
commit;--提交
i:=i+1;--i依次加1
endloop;--結束循環
end;
『貳』 oracle資料庫怎麼替換更新存儲內容
在安裝oracle資料庫的時候,一般就把資料庫給創建了。當使用Database Configuration Assistant工具創建另外一個資料庫的時候,一般資料庫默認的數據路徑放在oracle安裝路徑下面(例如:C:\oracle\oradata)。為了提高資料庫的性能,一般oracle的主目錄和數據文件要分別放在不同的盤中。而且系統C盤很容易崩潰,且空間小,不小心數據將隨系統的崩潰而消失,那樣損失將是無法估量的。一般用Database Configuration Assistant工具創建資料庫時並不提示你修改路徑。而且這個修改的路徑也不容易找到。
具體方法如下:假設這里安裝的資料庫名是XLJC。
1:找到資料庫XLJC下面的文件pfile,在pfile中用文本編輯器打開orit.ora文件。這里的路徑是C:\oracle\admin\XLJC\pfile
找到行control_files=("c:\oracle\oradata\XLJC\control01.ctl", "c:\oracle\oradata\XLJC\control02.ctl", "c:\oracle\oradata\XLJC\control03.ctl")
將盤符c:變成你所要存放的盤符,比如d:,然後保存退出。
2:找到oracle數據默認的存放路徑,例如這里是:
C:\oracle\oradata\XLJC
在d:盤下面建立同樣的目錄,例如d:\oracle\oradata。然後把整個XLJC文件夾復制到所建立的目錄下即可。(C:\oracle\oradata\XLJC目錄下存有有資料庫的控制文件,創建表空間的時候,表空間文件就和這些控制文件在同一目錄下)。
然後就可以打開oracle資料庫平台在你修改後的路徑下創建表空間了。
『叄』 (SQL資料庫)我想創建一個存儲過程來更新表中的數據
create
procere
update_table
(
@c_tbname
varchar(128),
--
要更新的表名
@c_upcolname
varchar(1000),
--
要更新的欄位列表,以豆號隔開
@c_updata
varchar(1000),
--
要更新的數據列表,以豆號隔開,要與相應的列一一對應
@c_id
varchar(100)
--
要更新的關鍵字,沒有關鍵字的不能更新
)
as
begin
declare
@c_sql
varchar(max)
declare
@i_bcol
int
declare
@i_ecol
int
declare
@i_bdata
int
declare
@i_edata
int
if
@c_id
is
null
or
@c_id
=
''
return
set
@i_bcol=
1
set
@i_bdata=
1
set
@c_sql
=
'
update
'
+
@c_tbname
+
'
set
'
set
@i_ecol
=
charindex(','
,
@c_upcolname
,
@i_bcol
)
while
@i_ecol
>
0
begin
set
@c_sql
=
@c_sql
+
substring(
@c_upcolname,@i_bcol,@i_ecol
-
1
)
+
'
=
'
set
@i_edata=
charindex(','
,
@c_updata,
@i_bdata)
set
@c_sql
=
@c_sql
+
''''
+
substring(
@c_updata,@i_bdata,@i_edata-
1
)
+
'''
,'
set
@i_bcol
=
@i_ecol
+
1
set
@i_ecol
=
charindex(','
,
@c_upcolname
,
@i_bcol
)
end
set
@c_sql
=
@c_sql
+
substring(
@c_upcolname,@i_bcol,len@c_upcolname)
-
1
)
+
'
=
'
set
@c_sql
=
@c_sql
+
''''
+
substring(
@c_updata,@i_bdata,len(@c_updata)-
1
)
+
'''
'
set
@c_sql
=
@c_sql
+
'
where
id
=
'''
+
@c_id
+
'''
'
exec
(
@c_sql
)
end