Oracle 如何迴圈查詢結果集,進行新增或修改

2022-10-08 16:48:27 字數 2964 閱讀 5027

oracle的pl/sql中怎樣迴圈查詢的結果集,然後根據查詢結果進行判斷,是新增或修改操作

loop迴圈例子

for item in (select a,b,c from table_a where 條件) loop

insert into table_b(a,b,c) values (item.a,item.b,item.c);

end loop;

如何將查詢結果集進行賦值

-- 獲取結算單位是否存在(查詢結果集賦值)---

select count(*) into connum from dxc_consignor where name=balance_name;

迴圈結果集,對每乙個結果進行判斷,如存在,執行修改,不存在,執行新增

----迴圈修改運輸記錄的貨主的tmscode  方法---

declare

balance_id varchar2(100);

balance_name varchar2(100);

connum number;

begin

--迴圈運輸記錄中的結算單位(id,name)(查詢結果集迴圈)--

for item in (select a.balance_id,a.balance_name from view_gz_yimiao a group by a.balance_id,a.balance_name) loop

-- 將查詢到的資料賦值給變數 --

balance_id := item.balance_id;

balance_name := item.balance_name;

-- 獲取結算單位是否存在(查詢結果集賦值)---

select count(*) into connum from dxc_consignor where name=balance_name;

--判斷是否存在,存在則將結算單位id賦給貨主的tmscode --

if connum=1 then

dbms_output.put_line('存在');

--執行修改--

update dxc_consignor set tmscode=balance_id where name=balance_name;

else

dbms_output.put_line('不存在');

--執行新增--

end if;

end loop;

end;

迴圈的結果集的檢視

執行的結果檢視

ps:參考**:

平時多記記,到用時才能看看,記錄你的進步,分享你的成果

oracle的pl/sql中怎樣迴圈查詢的結果集,然後根據查詢結果進行判斷,是新增或修改操作

loop迴圈例子

for item in (select a,b,c from table_a where 條件) loop

insert into table_b(a,b,c) values (item.a,item.b,item.c);

end loop;

如何將查詢結果集進行賦值

-- 獲取結算單位是否存在(查詢結果集賦值)---

select count(*) into connum from dxc_consignor where name=balance_name;

迴圈結果集,對每乙個結果進行判斷,如存在,執行修改,不存在,執行新增

----迴圈修改運輸記錄的貨主的tmscode  方法---

declare

balance_id varchar2(100);

balance_name varchar2(100);

connum number;

begin

--迴圈運輸記錄中的結算單位(id,name)(查詢結果集迴圈)--

for item in (select a.balance_id,a.balance_name from view_gz_yimiao a group by a.balance_id,a.balance_name) loop

-- 將查詢到的資料賦值給變數 --

balance_id := item.balance_id;

balance_name := item.balance_name;

-- 獲取結算單位是否存在(查詢結果集賦值)---

select count(*) into connum from dxc_consignor where name=balance_name;

--判斷是否存在,存在則將結算單位id賦給貨主的tmscode --

if connum=1 then

dbms_output.put_line('存在');

--執行修改--

update dxc_consignor set tmscode=balance_id where name=balance_name;

else

dbms_output.put_line('不存在');

--執行新增--

end if;

end loop;

end;

迴圈的結果集的檢視

執行的結果檢視

ps:參考**:

mysql迴圈遍歷查詢結果集

建立儲存過程之前需判斷該儲存過程是否已存在,若存在則刪除 drop procedure if exists init reporturl 建立儲存過程 create procedure init reporturl begin 定義變數 declare s int default 0 declare...

ORACLE查詢結果集的問題

現在需要乙個這樣的效果,有三張表abc 其中a和b是單獨的實體表。c表是一關係表,裡面有a和b的id以及別的。可以通過a和b的id查詢出需要的值 現在需要這樣乙個查詢效果,即以a為橫座標 b為縱座標。從表c根據對應ab值查出來的結果作為單元格。不知道怎麼寫了。求方案。要的結果集大概如下 a1 a2 ...

SQL迴圈結果集

1 游標,這不多說。2 臨時表 思路如下 rowcount來控制迴圈結束標記。臨時表裡生成乙個自動增長id 達到總行數時,結束迴圈。大概寫一下 假設有個實體表table useraccount 兩列 userid uniqueidentifier username nvarchar 100 現要遍歷...