一、基本語句
insert into tablename fieldname select fIEldname from tablename;
二、利用cursor及fetch將一個表中符合條件的記錄拷貝到另一個表中
晚上的時間,都是我自己的,我就好好的利用這個時間來學習學習Oracle,去年學過的東西都忘得差不多了,現在趁機會還沒有忘完之前拿起來。
今天看了一下匿名塊、函數、過程等,想起原來用過光標cursor及fetch,也是快忘得差不多了,那今天就來試試把一個表裡面的數據拷貝到另外一個結構完全相同的表裡面,不過,有一個條件就是原表的ID必須為5的倍數的才能夠被插入,否則不取。
在開始之前,還是先來復習一點東西:
1、匿名塊的格式基本就如下面所示
[declare]
/*變量定義區,也可做初使化等*/
begin
/*開始區,執行順序SQL語句*/
[exception]
/*異常處理區,可進行異常處理,異常的拋出使用raise關鍵字*/
end;
其中方框裡面的為可選項,不作為必須。
2、fetch
1)首先要定義cursor,如cursor id_cur is select id from components
2)然後打開cursor:open id_cur
3)第三是使用fetch從cursor並保存到變理中
4)第四關閉cursor
那就把上面說到的功能實現,代碼如下:
declare
num_id integer;/*定義變量*/
sql_str varchar(1000);
cursor id_cur is select id from components;/*用光標取ID*/
begin
open id_cur;/*打開光標執行*/
loop/*一直執行下去*/
fetch id_cur into num_id;/*根據光標