如何得到最近一次資料庫操作影響的資料行數?

2021-07-02 13:37:49 字數 866 閱讀 5995

如何能夠得到最近一次資料庫操作影響的資料行數?

在sybase或sqlserver中,有乙個全域性變數@@rowcount,可以返回最近一次操作(insert 或者update等)影響的資料行有多少,如刪除了100行資料,則@@rowcount= 100,

可是,在oracle中應如何查詢這一行數呢?

問題的提出:

如何能夠得到最近一次資料庫操作影響的資料行數?

在sybase或sqlserver中,有乙個全域性變數@@rowcount,可以返回最近一次操作(insert 或者update等)影響的資料行有多少,如刪除了100行資料,則@@rowcount= 100,

可是,在oracle中應如何查詢這一行數呢?

解答:原理是這樣的:

當執行一條dml語句後,dml語句的結果儲存在四個游標屬性中,這些屬性用於控制程式流程或者了解程式的狀態。隱式游標使用sql+變數名來引用游標屬性,如sql%found,sql%notfound,sql%rowcount,其中sql%found,sql%notfound是布林值,sql%rowcount是整數值,顯示游標使用游標名稱代替「sql」。

當執行dml語句時,pl/sql開啟乙個內建游標(或者是用顯示的游標)並處理結果,游標是維護查詢結果的記憶體中的乙個區域,游標在執行dml語句時開啟,完成後關閉。

其中的「sql%rowcount」就是本次操作所影響的資料記錄行數。

舉例如下:

li_count integer;

update table1

set col1 = 10;

li_count:=sql%rowcount;

commit;

dbms_output.put_line('影響的記錄數:'||li_count);

記一次資料庫的實戰

話不多說 直接開始 開始我們的敲 的工程吧 首先匯入標頭檔案 import tkinter import tkinter.messagebox import pandas as pd import numpy as np import matplotlib.pyplot as plt from sk...

記一次資料庫事務鎖

最近在做專案的時候碰到乙個問題,事務鎖。transactionoptions tos new transactionoptions tos.isolationlevel isolationlevel.repeatableread 行鎖 只會鎖住當前操作的那一行資料,當前表的其他資料不受影響。已驗證 ...

一次資料庫優化的對話

那天夜裡的時候,我去十三哥屋裡找他,他正在敲 平時我找他,都是談技術,畢竟都是程式設計師,除了這一點,其它的共同愛好,我們也沒有。不過這一次,不是談技術。房子要到期了,我是要問他,是繼續合租,還是各尋它途。他說要去北方,他女朋友在北方。這點我理解,我要去東南,我女朋友在東南。租房的事情談過後,他向我...