2023-08-03 21:04發(fā)布
在Oracle中,最大連續(xù)逾期次數(shù)是一個(gè)非常重要的概念,它表示在一定時(shí)間內(nèi),一個(gè)用戶或者進(jìn)程在連接到Oracle數(shù)據(jù)庫時(shí),累計(jì)超過的最大次數(shù)。當(dāng)一個(gè)用戶或者進(jìn)程的累計(jì)超過最大連接數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)將其關(guān)閉,以避免數(shù)據(jù)庫資源的浪費(fèi)和數(shù)據(jù)的不一致性。
然而,在實(shí)際使用過程中,有時(shí)候會(huì)出現(xiàn)用戶或者進(jìn)程在連接到Oracle數(shù)據(jù)庫時(shí),連續(xù)超過最大連接數(shù)的情況。此時(shí),系統(tǒng)默認(rèn)會(huì)將其關(guān)閉,但是這樣會(huì)導(dǎo)致系統(tǒng)記錄的一些信息丟失。因此,本文將介紹如何使用Oracle的存儲(chǔ)過程,來記錄用戶或者進(jìn)程的連續(xù)逾期次數(shù),以便在系統(tǒng)超過最大連接數(shù)時(shí),能夠更加靈活地處理這種情況。
首先,我們需要?jiǎng)?chuàng)建一個(gè)存儲(chǔ)過程,用于記錄用戶的連續(xù)逾期次數(shù)。在SQL*Plus中,我們可以使用以下代碼來創(chuàng)建一個(gè)名為“Clear_Overflow_Records”的存儲(chǔ)過程:
```sql
CREATE OR REPLACE PROCEDURE Clear_Overflow_Records
IS
p_user_id IN NUMBER;
p_conn_id IN NUMBER;
p_last_last_conn_time DATE;
BEGIN
p_user_id := DBMS_LOB.latest_open_lob_id;
p_conn_id := DBMS_LOB.open_lob_id;
p_last_last_conn_time := SYSDATE;
IF p_user_id IS NOT NULL THEN
INSERT INTO user_status (user_id, conn_id, last_conn_time) VALUES (p_user_id, p_conn_id, p_last_last_conn_time);
END IF;
END;
/
```
在這個(gè)存儲(chǔ)過程中,我們定義了三個(gè)變量:p_user_id表示當(dāng)前連接的用戶ID,p_conn_id表示當(dāng)前連接的connID,p_last_last_conn_time表示當(dāng)前連接的最后一次連接時(shí)間。然后,我們使用DBMS_LOB.latest_open_lob_id函數(shù)來獲取當(dāng)前連接的connID,使用DBMS_LOB.open_lob_id函數(shù)來獲取當(dāng)前連接的connID,使用SYSDATE函數(shù)來獲取當(dāng)前的時(shí)間。最后,我們使用INSERT INTO語句將當(dāng)前用戶的信息插入到user_status表中,以便后續(xù)處理。
接下來,我們需要在另一個(gè)存儲(chǔ)過程中,記錄超過最大連接數(shù)的用戶或者進(jìn)程的連續(xù)逾期次數(shù)。在SQL*Plus中,我們可以使用以下代碼來創(chuàng)建一個(gè)名為“Max_Connections_Overflow_Records”的存儲(chǔ)過程:
```sql
CREATE OR REPLACE PROCEDURE Max_Connections_Overflow_Records
IS
p_user_id IN NUMBER;
p_conn_id IN NUMBER;
p_last_conn_time DATE;
p_conn_count INTEGER;
BEGIN
p_user_id := DBMS_LOB.latest_open_lob_id;
p_conn_id := DBMS_LOB.open_lob_id;
p_last_conn_time := SYSDATE;
p_conn_count := 0;
IF p_user_id IS NOT NULL THEN
INSERT INTO user_status (user_id, conn_id, last_conn_time) VALUES (p_user_id, p_conn_id, p_last_last_conn_time);
END IF;
WHILE p_conn_count <= (MAX_CONNECTION_COUNT - 1) THEN
IF p_conn_id IS NOT NULL THEN
p_conn_count := p_conn_count 1;
END IF;
IF p_last_conn_time IS NOT NULL THEN
p_last_conn_time := p_last_conn_time 1;
END IF;
END IF;
IF p_conn_count > MAX_CONNECTION_COUNT THEN
DBMS_OUTPUT.put_line('oracle_overflow_records: user_id=', p_user_id, 'conn_id=', p_conn_id, 'last_conn_time=', p_last_conn_time, 'conn_count=', p_conn_count);
DBMS_LOB.close_lob(p_conn_id);
END IF;
END;
/
```
在這個(gè)存儲(chǔ)過程中,我們定義了三個(gè)變量:p_user_id表示當(dāng)前連接的用戶ID,p_conn_id表示當(dāng)前連接的connID,p_last_conn_time表示當(dāng)前連接的最后一次連接時(shí)間,以及p_conn_count表示當(dāng)前連接的累計(jì)次數(shù)。然后,我們使用DBMS_LOB.latest_open_lob_id函數(shù)來獲取當(dāng)前連接的connID,使用DBMS_LOB.open_lob_id函數(shù)來獲取當(dāng)前連接的connID,使用SYSDATE函數(shù)來獲取當(dāng)前的時(shí)間。接著,我們使用INSERT INTO語句將當(dāng)前用戶的信息插入到user_status表中,以便后續(xù)處理。
最后,我們需要在用戶或者進(jìn)程連續(xù)逾期次數(shù)達(dá)到最大連接數(shù)時(shí),自動(dòng)關(guān)閉連接。我們可以通過在用戶或者進(jìn)程的存儲(chǔ)過程中,使用觸發(fā)器來實(shí)現(xiàn)這一點(diǎn)。具體來說,我們可以創(chuàng)建一個(gè)觸發(fā)器,在存儲(chǔ)過程接收到SQL*Plus中的INSERT INTO語句時(shí),自動(dòng)關(guān)閉連接。在SQL*Plus中,我們可以使用以下代碼來創(chuàng)建一個(gè)名為“clear_overflow_records_trigger”的觸發(fā)器:
```sql
CREATE OR REPLACE TRIGGER clear_overflow_records_trigger
BEFORE INSERT ON user_status
FOR EACH ROW
BEGIN
IF TG_OPS.insert_sql.length > 0 THEN
DBMS_LOB.close_lob(TG_OPS.insert_sql.conn_id);
EXIT;
END IF;
END IF;
END;
/
```
在這個(gè)觸發(fā)器中,我們定義了在插入記錄之前,如果當(dāng)前的INSERT INTO語句長(zhǎng)度不為0,則關(guān)閉連接。這樣,當(dāng)用戶或者進(jìn)程的連續(xù)逾期次數(shù)達(dá)到最大連接數(shù)時(shí),系統(tǒng)就會(huì)自動(dòng)關(guān)閉連接,以避免數(shù)據(jù)不一致性和資源浪費(fèi)。
綜上所述,本文介紹了如何使用Oracle的存儲(chǔ)過程來記錄用戶的連續(xù)逾期次數(shù),以及如何使用觸發(fā)器在用戶或者進(jìn)程連續(xù)逾期次數(shù)達(dá)到最大連接數(shù)時(shí),自動(dòng)關(guān)閉連接。通過這種方式,我們可以更加靈活地處理超過最大連接數(shù)的用戶或者進(jìn)程,從而保證數(shù)據(jù)庫的穩(wěn)定性和數(shù)據(jù)的正確性。
逾期會(huì)影響貸款,因?yàn)橛姓餍畔到y(tǒng),銀行可以查詢。個(gè)人信用報(bào)告里顯示當(dāng)前逾期數(shù)是1,當(dāng)前逾期總額是107,貸記卡12個(gè)月內(nèi)未還最低還款額次數(shù)是4,是什么意思1.當(dāng)前逾期次數(shù)為1,表示征信時(shí)有一筆逾期還款。2 .。目前的逾期金額是107元,也就是...
1.當(dāng)前逾期次數(shù)為1,表示征信時(shí)有一筆逾期還款。2 .。當(dāng)前逾期金額是107,也就是說這次逾期金額是107元。[br/]3。信用卡最低還款額12個(gè)月內(nèi)未還的次數(shù)為4次,即12個(gè)月內(nèi)未按期還款4次。當(dāng)期逾期期數(shù)是指最低還款額或借款合同約定的金...
逾期屬于違約的一種,違約還包括惡意透支、套現(xiàn)等違規(guī)行為。個(gè)人信用報(bào)告里顯示當(dāng)前逾期數(shù)是1,當(dāng)前逾期總額是107,貸記卡12個(gè)月內(nèi)未還最低還款額次數(shù)是4,是什么意思1、當(dāng)前逾期數(shù)是1,意思是查征信的時(shí)候正在有1次未按期還款。2、當(dāng)前逾期總額是...
有時(shí)間提示,24小時(shí)候才出報(bào)告,你可以用發(fā)給你的5261登錄驗(yàn)證碼與第一天或第二天后登錄查詢個(gè)人信用報(bào)告包括信貸4102記錄、公共記錄和被查詢記錄的詳細(xì)記錄;個(gè)人信用信息1653概要主要是指信貸記錄、公共信息和最近兩年被查詢記錄專的匯總記錄...
1、當(dāng)前逾期數(shù)是1,意思是查征信的時(shí)候正在有1次未按期還款。2、當(dāng)前逾期總額是107,意思是這一次未按期還款額是107元。3、貸記卡12個(gè)月內(nèi)未還最低還款額次數(shù)是4,意思是12個(gè)月內(nèi)有4次未按期還款。當(dāng)期逾期期數(shù)是指當(dāng)前連續(xù)未還最低還款額或...
連續(xù)9個(gè)月沒還利息才算連續(xù)3次,你如果連續(xù)9個(gè)月沒還利息或者累計(jì)6個(gè)季度沒還利息的話你就不能公積金貸款了,如果達(dá)不到以上條件,理論上海能貸款,但銀行一般就不同意了,需要找熟人和銀行交涉,增加另外的擔(dān)保等。工行信用卡逾期次數(shù)是怎樣計(jì)算的?工行...
1.當(dāng)前逾期次數(shù)為1,表示征信時(shí)有一筆逾期還款。2 .。目前的逾期金額是107元,也就是說這次的逾期付款是107元。[br/]3。信用卡12個(gè)月內(nèi)未還最低還款額次數(shù)為4次,即12個(gè)月內(nèi)有4次未還。當(dāng)期逾期期數(shù)是指最低還款額或借款合同約定的金...
逾期一次,兩次可以,如果惡意逾期的話,你的信用就是受影響了個(gè)人信用報(bào)告查了顯示賬戶數(shù)是二,月份數(shù)是四,最長(zhǎng)逾期月份是一搜一下:個(gè)人信用報(bào)告查了顯示賬戶數(shù)是二,月份數(shù)是四,最長(zhǎng)逾期月份是一我的信用報(bào)告上有發(fā)生過逾期的賬戶數(shù)1最近五年內(nèi)9個(gè)月處...
1、當(dāng)前逾期數(shù)是1,意思是查征信的時(shí)候正在有1次未按期還款。2、當(dāng)前逾期總額是107,意思是這一次未按期還款額是107元。3、貸記卡12個(gè)月內(nèi)未還最低還款額次數(shù)是4,意思是12個(gè)月內(nèi)有4次未按期還款。當(dāng)期逾期期數(shù)是指當(dāng)前連續(xù)未還最低還款額或...
展開全部逾期金額不會(huì)消除,還清相關(guān)款項(xiàng)后五年五年不良記錄消除。個(gè)人信用報(bào)告里顯示當(dāng)前逾期數(shù)是1,當(dāng)前逾期總額是107,貸記卡12個(gè)月內(nèi)未還最低還款額次數(shù)是4,是什么意思1、當(dāng)前逾期數(shù)是1,意思是查征信的時(shí)候正在有1次未按期還款。2、當(dāng)前逾期...