1. 程式人生 > >ORACLE中更新資料,PLSQL Developer中SELECT ... FOR UPDATE和 SELECT T.*,ROWID的區別

ORACLE中更新資料,PLSQL Developer中SELECT ... FOR UPDATE和 SELECT T.*,ROWID的區別

背景:ORACLE中更新少量資料時,在PLSQL  Developer中,一般用的語句是SELECT   FOR   UPDATE和SELECT   T.*,ROWID,這倆語句執行之後可以手動在查詢出來的資料中修改。

例項背景:表名A,資料如下:  

A
COL1    COL2
1a
2b
3c
4d

此時,我要更新表A中的資料。

語句1:SELECT   A.COL2   FROM   A  WHERE   A.COL1  IN   (1,2,3)   FOR   UPDATE;

執行語句1.

語句2:UPDATE   A   SET   COL2 = 'aa'  WHERE  COL1 = 1;

執行語句2 ,會發現此時語句2一直在執行狀態,無法完成。

語句3:UPDATE   A   SET   COL2 = 'dd'  WHERE  COL1 = 4;

執行語句3,可以執行成功。

總結:使用FOR  UPDATE時,會鎖住當前要update的資料,在for  update這個事務執行完畢之前,是無法對鎖住的那部分資料進行更新的。語句3中的資料沒有for  update,也就未處於鎖定狀態。可以進行更新。

            SELECT  A.*,ROWID  FROM  A;這個語句是不會鎖表的。rowid應該是指資料的實體地址,使用rowid之後,可以直接進行資料的更新。

TIPS:for  update 語句只能用於單表更新。

相關推薦

ORACLE更新資料PLSQL DeveloperSELECT ... FOR UPDATE SELECT T.*,ROWID區別

背景:ORACLE中更新少量資料時,在PLSQL  Developer中,一般用的語句是SELECT   FOR   UPDATE和SELECT   T.*,ROWID,這倆語句執行之後可以手動在查詢出來的資料中修改。例項背景:表名A,資料如下:  ACOL1    COL2

Oracle使用遊標更新資料 Oracle遊標之select for updatewhere current of 語句

Oracle使用遊標更新資料 2016年11月20日 13:15:49 hzwy23 閱讀數:5313 友情推廣 ###使用遊標修改資料 ####定義一個遊標,遊標名稱為 mycursor #####更新scott使用者中emp表中empno

Oraclefor update select t.*,t.rowid編輯資料區別

1.select * from ls.lims_employees where empno='0001' for update只有當前使用者能檢視SELECT記錄,其他使用者可以select * fr

oracle資料遷移到mysql避免亂碼的方法

1.將oracle中的資料匯出成csv格式的檔案 將oracle中的查詢結果集,點選匯出,選擇csv。(匯出Excel格式非常非常慢,Excel匯入mysql中時,選擇65001 (UTF-8),中文不會亂碼) 2.用mysql資料庫管理工具navicat,點選到表選項(非具體表),點選

高效刪除Oracle資料庫重複資料並保留最新一條的方法

在對資料庫進行操作過程中我們可能會遇到這種情況,表中的資料可能重複出現,使我們對資料庫的操作過程中帶來很多的不便,那麼怎麼刪除這些重複沒有用的資料呢?  重複資料刪除技術可以提供更大的備份容量,實現更長時間的資料保留,還能實現備份資料的持續驗證,提高資料恢復服務水平,方便實

使用PLSQL Developer的ODBC匯入器將Excel表匯入Oracle資料庫

該文將介紹如何使用PL/SQL將excel表匯入到資料庫中,以下表為例: pro.xls(97-2003 工作簿):中國省/直轄市列表 具體步驟如下: 1、開啟並登入到PL/SQL,點選【工具】→【ODBC匯入器】。 2、在開啟的【ODB

SQLwhere in的用法以及mybatis執行查詢語句可以在plsql查詢資料但是在程式查詢不到

首先我們要知道where是什麼:一個判斷符。在SQL操作中,控制只選擇指定的行。 in的其實歸類於特殊的比較運算子 expr1 between expr2 and expr3:表示expr1的值在expr2和expr3之間 expr in(expr2,expr3,expr4,

從資料庫讀取資料建立XML檔案並更新維護XML

public class OperateXML { /// <summary> /// 檔案全路徑 /// </summary> private string fullF

通過資料庫批量向kettle插入資料建立transjob的模板(按照不同的要求需要自行調整)

import psycopg2 # 用來操作資料庫的類 class GPCommand(object): # 類的初始化 def __init__(self): self.hostname = 'XXX.XX.X.XX' self.username

Java獲取資料庫資料獲取下拉列表資料 獲取省、市、區的資料根據上一層去控制下一層

$(function() { //validateRule(); getDept(); $("select[name='deptNamee']").change(function() { var deptCode = $("select[name='deptN

PLSQL DeveloperWindow List 視窗被關閉及鎖定辦法

在PLSQL Developer 中,發現那個Window List視窗每次啟動都需要手動拖拽到介面左下方,很不方便。通過  Tools-Preferences-User Interface-Options,在視窗中選中“Autosave Desktop”,然後拖拽Window Li

python 從檔案讀取資料同時去除掉空格換行

從檔案中讀取資料,同時去除掉空格和換行,程式碼如下 import numpy as np def sort(path): w = open(path,'r') l = w.readlines() col=[] for k in l: k = k.strip('\n')

Oracle 儲存過程傳送郵件並支援使用者驗證 中文標題內容

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

c#讀取txt,xml,excel資料繫結到lsitview ,dataview

c#讀取txt,xml,excel中的資料,繫結到lsitview ,dataview c讀取txtxmlexcel中的資料繫結到lsitview dataview c#讀取txt,xml,e

執行指令碼獲取mysql表資料報1044錯誤

  mysql>use mysql;mysql>grant all on *.* to 資料庫登入名字@"%" identified by "資料庫的密碼";mysql>FLUSH&nb

plsql developer如何設定sql window顯示行號

  plsql developer中如何設定sql window顯示行號 2017年07月10日 17:50:15 Alan_ZhQ 閱讀數:4531 標籤: plsql developer 更多 個人分類: plsq

1.2 Vue例項資料事件方法

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="https://cdn.jsdel

從表格獲取資料並在排序後按順序重新排列表格(Javascript)

數字排序出現問題 升序結果出現了一個大的數字反而在小數字的後面 function mySort(arr){ for(var x=0;x<arr.length-1;x++){ for(var y=x+1;y<arr.l

java實現賦值excel模板並在新檔案寫入資料並且下載

/** * 生成excel並下載 */ public void exportExcel(){ File newFile = createNewFile(); //File newFile = new File("d:/ss.x

Python3學習(三十四):python從mongo資料使用pandas.DataFrame進行列操作並轉字典

使用該操作的具體場景(一般與mongo相結合): 比如mongo中存了幾萬條資料,需要將mongo中的資料取出來,並對其中的一列進行相關操作,最後轉化為字典格式。 具體程式碼實現如下: import pandas as pd import pymongo import