首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【DB笔试面试392】Oracle的自治事务是什么?

    Q 题目 Oracle的自治事务是什么 A 答案 Oracle的自治事务(Autonomous Transaction)是将一个主事务分割成几个子事务,在执行完子事务以后再继续执行主事务。...这里的关键是,子事务是独立于主事务的,子事务中的ROLLBACK和COMMIT操作只会影响子事务中的DML操作;同样,主事务中的ROLLBACK和COMMIT操作只会影响主事务中的DML操作,而不会影响子事务中的操作...在子事务中已经COMMIT的操作,不会被主事务中的ROLLBACK撤销。...在一个包中,只有其中的函数或存储过程能够定义成自治事务。整个包不能声明为自治事务。 (3)一个对象的方法可以声明为自治事务。 (4)触发器可以声明为自治事务。 (5)内嵌程序块不能声明为自治事务。...自治事务可以用来解决“ORA-14551: 无法在查询中执行DML操作”错误。触发器无法包含COMMIT语句,除非有PRAGMA AUTONOMOUS_TRANSACTION标记。

    1.3K20

    使用ADO和SQL在Excel工作表中执行查询操作

    学习Excel技术,关注微信公众号: excelperfect 我们可以将存储数据的工作表当作数据库,使用ADO技术,结合SQL查询语句,可以在工作表中获取满足指定条件的数据。...在VBE中,单击菜单“工具——引用”,在“引用”对话框中,找到并选取“Microsoft ActiveX Data Objects 6.1 Library”,如下图1所示。 ?...Source=" &ThisWorkbook.FullName & ";" & _ "ExtendedProperties=""Excel 12.0;HDR=Yes;"";" '在字符串中存储查询语句...在同一代码中,只需要连接数据库一次,接着可以执行多个查询操作,无需每次查询前都进行连接。...SQL查询语句为: query = "Select * from [" & wksData.Name _ & "$] Where 物品='苹果' " 在工作表wksData中查询物品为“苹果”的记录

    8K20

    一条查询SQL在MySQL中是怎么执行的

    这样在我们以后遇到MySQL的一些异常或者问题的时候,就可以快速定位问题并解决问题。 下边通过一张图来看一下SQL的执行流程,从中可以清楚的看到SQL语句在MySQL的各个功能模块中执行的过程。 ?...这个时候如果需要继续操作数据库,就需要重新连接然后再执行请求。...如果MySQL版本是5.7或以上版本,可以在每次执行一个比较大的操作后,通过执行mysql_reset_connection来重新初始化连接资源。...如果查询语句在缓存中可以查到这个key,就直接把结果返回给客户端。如果语句不在缓存中,就会继续执行后边的阶段。执行完成后,将执行结果存入缓存中。...在数据库的慢查询日志中可以看到一个rows_examined的字段,表示这个语句执行过程中扫描了多少行,这个值是在执行器每次调用引擎的时候累加的,有时候执行器调用一次,在引擎内部扫描了多行,隐藏引擎扫描行数跟

    7.1K20

    PLSQL --> 函数

    语句中直接调用函数 d.使用dbms_output调用函数 注:函数在调用的时候需要按位置指定参数,没有存储过程参数传递灵活 必须具有execute 函数的权限 2.函数在SQL中调用的主要场合...此外函数可以在SQL语句的以下部分调用 a. select 命令的选择列表或子查询中 b....--使用SQL语句调用时,收到了错误信息,在内部查询内不能完成DML操作 scott@ORCL> select delete_oper(7788) from dual; select delete_oper...(7788) from dual * ERROR at line 1: ORA-14551: cannot perform a DML operation inside a query ORA...多用于数据库中完成特定的操作,如删除,更新,插入等DML操作 多用于特定的数据如选择等 七、更多参考 有关SQL请参考 SQL 基础--> 子查询 SQL 基础-->多表查询 SQL基础-->分组与分组函数

    1.4K20

    【DB笔试面试627】在Oracle中,对表执行COMMENT(注释)操作需要什么权限?

    ♣ 题目部分 在Oracle中,对表执行COMMENT(注释)操作需要什么权限? ♣ 答案部分 Oracle的COMMENT语句可以给一个列、表、视图或快照添加一个最多2K字节的注释。...注释被存储在数据字典中,并且可以通过数据字典视图DBA_COL_COMMENTS(列的注释)和DBA_TAB_COMMENTS(表的注释)查看COMMENTS列。...对于普通用户下的表,拥有“COMMENT ANY TABLE”或ALTER权限的普通用户都可以执行COMMENT操作。...对于普通用户下的表,拥有“COMMENT ANY TABLE”或ALTER权限的用户都可以执行COMMENT操作: LHR33@test18c> conn lhr/lhr Connected....D.COMMENTS 入参, 'A.' || D.COLUMN_NAME || ' ' || D.COLUMN_NAME || ',' || '--' || D.COMMENTS 查询

    2.1K30

    Python在生物信息学中的应用:在字节串上执行文本操作

    如何在字节串(Byte String)上执行常见的文本操作(例如,拆分、搜索和替换)。 解决方案 字节串支持大多数和文本字符串一样的内置操作。...data.split() [b'Hello', b'World'] >>> data.replace(b'Hello', b'Hello Cruel') b'Hello Cruel World' >>> 类似的操作同样适用于字节数组...bytearray(b'World')] >>> data.replace(b'Hello', b'Hello Cruel') bytearray(b'Hello Cruel World') >>> 我们也可以在字节串上执行正则表达式的模式匹配操作...re.split(b'[:,]',data) # Notice: pattern as bytes [b'FOO', b'BAR', b'SPAM'] >>> 讨论 大多数情况下,几乎所有能在文本字符串上执行的操作都可以在字节串上进行...b'Hello World' # Observe b'...' >>> print(s.decode('ascii')) Hello World >>> 最后总结一下,通常来说,如果要同文本打交道,在程序中使用普通的文本字符串就好

    75610

    【SQL Server】在 SSMS 中 使用 生成 SQL 脚本 方式 实现 数据库 备份 还原 ( 数据备份操作 - 生成 SQL 脚本 | 数据还原操作 - 执行 SQL 脚本 )

    清空表 , 然后再执行上述生成的 SQL 脚本 ; 2、数据备份操作 - 生成 SQL 脚本 右键点击 数据库 , 选择 " 任务 / 生成脚本 " ; 弹出生成脚本对话框 , 点击 " 下一步(N)..." 按钮 , 进行下一步操作 ; 在该步骤中 , 勾选 上方的 " 选择具体的数据库对象(Q) " 选项 , 然后 展开 " 表 " 选项 ; 表 展开后 如下显示 , 会将数据库中所有的 数据表 都显示在列表中..., 可能需要几分钟 ; 在保存位置 查看生成的脚本 ; 打开该文件 , 发现这就是一个文本文件 , 首先使用 USE database_name; 指定了数据库 , 然后 是几万条插入数据 ; 3、数据还原操作...- 执行 SQL 脚本 进入 SSMS 后 , 右键点击 数据库 , 选择 " 新建查询 " , 然后 使用 truncate table [dbo]....脚本加载到 SSMS 中 ; 在脚本中 , 右键点击空白处 , 在弹出的菜单中选择 " 执行 " 选项 , 即可执行 等待执行完毕即可完成数据还原操作 ;

    9.8K10

    Every Day of a DBA,第153期: Oracle 19c Active Data Guard-DML Redirection

    当用户在备库上发起 DML 时,操作会被 透明地重定向 到主库执行,产生的 Redo 日志再传回备库应用,最终将结果返回给客户端。...适用场景 备库上运行的只读应用程序偶尔需要执行少量 DML(如更新状态、插入日志) 希望减轻主库上大量只读会话的并发压力 应用代码无法修改连接字符串,但需要备库具备有限写入能力 报表系统需要在查询中间结果时写入临时标记...DML 重定向 Oracle XA 事务不支持:分布式 XA 事务中的 DML 无法重定向 重定向量建议 DML 最终在主库执行,过多会冲击主库性能 连接方式限制:必须使用 用户名...高级测试场景 7.1 PL/SQL 块中的 DML 重定向 备库上的 PL/SQL 块中包含的 DML 同样会被重定向: -- 在备库执行 BEGIN INSERTINTO oracle_dml_test...风险 测试环境中充分验证 上线前模拟备库 DML 压力,确认主库可承受 ❌ 注意事项 DDL 不会重定向 — 表结构变更仍需在主库执行 序列(Sequence)不重定向 — 在备库访问序列需在主库预先处理

    14800

    MySQ之onlineDDL

    copy 算法的执行执行流程: 准备: 对表加 DML 读锁,读取元数据(DDL不并行,DML可以并行) 升级 DML 写锁(DDL和DML都不并行) 按照原表定义创建一个新的临时表 执行: 对临时表进行...其中 INPLACE 有两种情况(两者差异在总结部分说明): rebuild table no rebuild table 整体流程: 记录DML操作:在DDL操作执行期间,如果有DML操作(如INSERT...DML LOCK=EXCLUSIVE 阻止并发查询和 DML LOCK=DEFAULT 允许尽可能多的并发(并发查询,DML 或两者)。...所以当时如果正好有一个长事务在执行,DDL操作会等待 MDL独占锁超时,并且会 block 后续的所有该表的 transaction 从库复制滞后 主库的DDL执行完毕之后,才会开始在从库执行。...在主库上执行的DML只有在从库DDL完成之后才会执行。 参考 aliyun RDS onlineDDL 使用

    74110

    删除数据库表分区后,索引不可用(失效)的解决方案

    在系统后端配置表数据的生命周期 在执行第 1、2 步操作,删除分区的时候没有遇到任何问题,但在第 3 步操作时 DBA 反馈执行报错,报错信息为: ORA-01502: index ‘xxx.xxx’...; 方案可行性分析:此方案简单粗暴,并能快速解决无法进行 DML 操作的问题,但是却忽略了查询效率的问题,若将索引删除,查询依然会很慢方案可行性分析:此方案简单粗暴,并能快速解决无法进行...DML 操作的问题,但是却忽略了查询效率的问题,若将索引删除,查询依然会很慢甚至超时,业务上是无法通过的,因此只能舍弃。...但由于其执行难度低,能快速实施,且重建索引后即可解决查询和无法进行 DML 操作的问题,因此最后被采纳。...索引失效对 DML 操作的影响 在上面的案例中,我们删除分区导致索引失效后,是无法正常进行 DML 操作的。

    4.2K11

    亚信安慧AntDB-M 只读事务提交优化

    在事务开启和提交过程中执行的DML的SQL语句,申请到的表意向锁资源,根据2PL协议会一直持有直到事务提交或回滚才会释放。...,DDL请求会等待超时后失败;如果开启事务和执行DML语句发生在备副本上,这时DDL语句在主副本上是成功的,DDL语句通过复制协议同步到备副本上执行,会等待锁超时后失败,导致后续通过复制协议同步过来数据无法继续应用到备副本上...在数据库隔离级别为读已提交(Read Committed)时,且autocommit=0的场景下:如果事务前序的只读查询操作的DML,每执行一条只读查询操作的DML后,系统自动提交;如果事务执行过写操作的...DML,之后的再执行只读查询或写操作的DML,不执行自动提交;只读查询操作的DML有:SELECT语句(不带FOR UPDATE);写操作的DML有:INSERT、UPDATE、DELETE、SELECT...如图2所示,在set allow_readonly_autocommit=on,开启只读事务提交优化,只读SELECT操作在事务未提交时也不会持有表意向锁,在UPDATE写操作后的只读SELECT操作不会释放锁

    40610
    领券