sqlplus语句自动提交(数据库:如何使一张表产生死锁现象从而无法访问)

本文目录
数据库:如何使一张表产生死锁现象从而无法访问
oracle的测试例子,使用它的sqlplus连接,默认为非自动提交。如果是MSSQL,则需要你把它的查询选项中的自动提交改为非自动提交
create table t5(id int,sp varchar(10));
declare
begin
for i in 1..10 loop
insert into t5 values(i,’test’||i);
end loop;
end;
/
session 1(一个连接):
update t5 set id=99 where id=10;------行加IX锁
session 2(第二个连接):
update t5 set id=id+1;-------------表等候加IX锁
session 1:
update t5 set id=id-1 where id》8;------发生死锁,session 2事务回滚
oracle的sqlplus怎样保存修改的数据
oracle中执行了insert、update、delete这三个DML语句后,结果在未提交前实际上是保存在undo空间内,只有提交之后,才会真正写入到表中。所以会发生你的问题。
提交语句:commit
另外,在未做提交前,其他人是无法select到你处理的数据的,看到的是未处理前的数据。
还有一点要说明,当你执行了update、delete时,语句所影响的数据会被oracle自动锁定,其他人只能查,而不能update或delete,如果执行update或delete,那么就会产生数据库锁。而锁一旦产生,对系统的影响会很大,因此应尽快提交。
SQL plus 中数据怎么样输出
/ as {sysdba|sysopr}:使用操作系统用户验证,以osdba或osopr一员的身份登录,如验证通过,被赋予sysdba或sysopr的权限
使用格式:sqlplus "/ as sysdba"
/nolog:不执行connect操作,直接进入sqlplus操作界面
-s:silent模式,不显示sqlplus启动信息和提示符
《:接受sql脚本从标准输入重定向
《《:立即文档
4.4.2 提示符命令
accept variable :接受输入变量
例子:accept pwd char format a8 prompt Password: hide
column column :设定对某个域的显示格式
如果要同时改变某域的输出长度和标题,必须使用column命令
见emp的定义,name本为char(20),输出缩为10位,duty本为 char(1),扩张为6位,以便有足够的空间显示中文标题。
SQL》column name format a10 heading 姓名;
SQL》column duty format a6 heading 职位;
SQL》column age format 999999 heading 年龄;
SQL》column upd_ts format a14 heading 更新时间;
SQL》select name,duty,age,upd_ts from emp;
show option:显示SET的选项
spool :输出重定向文件
timing :定时器
4.4.3 SET选项
autocommit:自动提交insert、update、delete带来的记录改变,缺省为off
colsep:域输出分隔符
define:识别命令中的变量前缀符,缺省为on,也就是&,碰到变量前缀符,后面的字符串作为变量处理
如果待更新内容包含&(在URL中很常见),而define非设为off,sqlplus会把&后面紧跟的字符串当成变量,提示输入,这里必须重新输入&和那个字符串,才能实现正常更新。将define设为off,就不再进行变量判断。
SQL》set define off;
***隐藏网址***
echo:显示start启动的脚本中的每个sql命令,缺省为on
feedback:回显本次sql命令处理的记录条数,缺省为on
heading:输出域标题,缺省为on
linesize:输出一行字符个数,缺省为80
如果一行输出超过linesize,会回车到第二行,这样格式就会混乱。
markup html:html格式输出,缺省为off
通常需要与spool配合,否则html输出就没有意义。
numwidth:输出number类型域长度,缺省为10
长number类型的域常常因为输出长度的问题,引起误会。
pagesize:输出每页行数,缺省为24
为了避免分页,可设定为0。
termout:显示脚本中的命令的执行结果,缺省为on
timing:显示每条sql命令的耗时,缺省为off
trimout:去除标准输出每行的拖尾空格,缺省为off
trimspool:去除重定向(spool)输出每行的拖尾空格,缺省为off
4.4.4 例子
以文本形式下载表数据
oracle缺乏将表中数据输出至文本文件的工具,因此只能利用sqlplus和unix工具做变通的处理
sqlplus -s dbuser/oracle 《/dev/null
set colsep |;
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set trimout on;
set trimspool on;
spool tmp.txt;
select * from emp;
spool off;
exit
EOF
tr -d 《 tmp.txt 》emp.txt 删除空格,可选
注意:一定要用spool,如果在命令行中直接用》tmp.txt可能会造成数据缺失,至少在Unixware7上如此
假定某域是char(n),如中间出现回车\n,则下载出的这条记录的格式将会错乱,不宜采用此方法

更多文章:
callme是什么意思(call me什么意思不同语境是不是有不同的意思)
2026年9月25日 05:30
设计软件网站(国外海报设计网站有哪些求国内外各大设计类网站,如视觉中国、中国设计之窗等)
2025年11月12日 00:30
mysql教程第二版实验答案(2017年12月计算机二级MySQL模拟试题及答案(3))
2026年3月18日 23:00
boxshadow三边阴影(box-shadow属性是什么)
2026年8月23日 03:30
javase downloads(怎么下载java sdk)
2026年5月10日 00:30
elasticsearch配置修改linux(elastic search安全加固手册)
2026年1月1日 22:00
include是c语句吗(c语言开头为什么用include 而不是别的词)
2026年2月27日 17:00
贪吃蛇游戏程序分析c(请问一个VC++贪吃蛇的部分程序的算法是什么)
2025年11月3日 21:30
formate翻译(Methoxybenzylazidoformate属于哪类有机物汉语如何翻译)
2025年7月19日 20:45
sql中用于查询的语句命令是(在关系数据库标准语言SQL中,实现数据检索的语句命令是什么)
2026年2月23日 15:15
稀疏矩阵中非零元素的个数远小于矩阵元素的总数(为什么稀疏银子小于0.05也还是稀疏矩阵)
2026年4月25日 02:45















