dml操作 oracle_oracle dml操作和 ddl操作 - CSDN
精华内容
参与话题
  • from dual 调用函数的时候,报ORA-14551: 无法在查询中执行 DML 操作。 解决方法: 函数声明时IS后面加 PRAGMA AUTONOMOUS_TRANSACTION;,操作语句后再加 COMMIT; 关于PRAGMA AUTONOMOUS_TRANSACTION(自治...

    用select ... from dual 调用函数的时候,报ORA-14551: 无法在查询中执行 DML 操作。


    解决方法:

    函数声明时IS后面加 PRAGMA AUTONOMOUS_TRANSACTION;,操作语句后再加 COMMIT;


    关于PRAGMA AUTONOMOUS_TRANSACTION(自治事务)的解释:http://blog.sina.com.cn/s/blog_4f925fc30100h8ld.html

    展开全文
  • oracle DML、DDL语句区别

    千次阅读 2014-01-03 17:57:00
    DML:数据操作语言,SQL中处理数据等操作统称为数据操纵语言  它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言,不修改表的结构,只修改表的内容 需要...
    DML:数据操作语言,SQL中处理数据等操作统称为数据操纵语言

           它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言,不修改表的结构,只修改表的内容

    需要commit 才能真正被执行



    DDL:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言

           DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用



    DCL:数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等

           是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL
    展开全文
  • 我们在用create index inx_1 on t(col1)创建索引时,oralce会lokc会全表,这时如果是生产系统,可能会引起重大事故,所有的dml操作均需要等待.  但有时我们为了创建索引时不影响生产系统的dml执行,可以创建索引时...

      我们在用create index inx_1 on t(col1)创建索引时,oralce会lokc会全表,这时如果是生产系统,可能会引起重大事故,所有的dml操作均需要等待.

     但有时我们为了创建索引时不影响生产系统的dml执行,可以创建索引时使用online关键字,这样,创建的索引时,再执行dml时,不会阻塞dml操作.

    展开全文
  • oracle 中触发器,commit 的问题

    万次阅读 2011-07-05 22:47:10
    触发器无需commit也不能写commit触发器和触发它的DML是同一个事务DML提交了,触发器的操作也提交了,要不就一起回滚了当然,如果你一定要在触发器里写COMMIT那就用自治事务相当于一个事务里的子事务正常情况下,...

    触发器无需commit
    也不能写commit
    触发器和触发它的DML是同一个事务
    DML提交了,触发器的操作也提交了,要不就一起回滚了

    当然,如果你一定要在触发器里写COMMIT
    那就用自治事务
    相当于一个事务里的子事务

    正常情况下,Oracle规定在触发器中不能运行 ddl语句和commit,rollback语句。

    解决办法有两种:

    1.在可以在触发器中加入:pragma autonomous_transaction; 表示自由事务处理。
    如:

    CREATE OR REPLACE TRIGGER T_create BEFORE insert ON T_RCatalogue
    for each row
    DECLARE
    pragma autonomous_transaction;

    NRDSId varchar(500):='';

    begin

    2.可以另外写一个方法,把dll语句传递到这个方法中去执行。

    注释:
       ddl语句:DDL语句用语定义和管理数据库中的对象,如Create,Alter,Drop,truncate等;DDL操作是隐性提交的!操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger
       DML(Data Manipulation Language)数据操纵语言命令使用户能够查询数据库以及操作已有数据库中的数据。如insert,delete,update,select等都是DML

    展开全文
  • oracle什么时候需要commit

    万次阅读 多人点赞 2012-06-05 10:37:17
    今天在oracle的SQL plus 中执行了删除和查询操作,然后在PL/SQL中也执行查询操作,语句一样,结果却不一样,让我大感郁闷,后来才突然想到可能是两边数据不一致造成的,但是为什么不一致呢,就是没用commit, ...
  • 转自:https://blog.csdn.net/paperbook/article/details/51003313在oracle建立索引时,会阻塞对该表的DML操作,select不属于DML,是DQL。所以在大数据量的情况下建立索引,而此时会对该表进行DML操作时需要在建索引...
  • Oracle-31-对视图DML操作

    千次阅读 2016-05-12 21:59:46
    一、对视图进行DML操作 1.创建一个视图v_person create or replace noforce view v_person as select * from person where id between 1003 and 1007;   2.向视图v_person中进行insert操作 insert into v_...
  • Oracle,create index,如果是大表建立索引,切记加上online参数
  • Oracle事务的隐式提交

    千次阅读 2013-11-13 14:16:41
    又名自动提交,即无需显示执行commit语句,session中的操作被自动提交到数据库的过程。 隐式提交的方式 1、正常执行完ddl语句。包括create,alter,drop,truncate,rename。 2、正常执行完dcl语句。包括grant,...
  • 这几天在做数据库的优化,有个2亿记录的表,发现需要添加一个联合...on tablename (entp_id,sell_date),结果悲剧了,把所有的DML语句都阻塞了,导致系统不能正常使用,还好是晚上10点,用户不是非常多,1个
  • 一图搞定 看图说话 老师都这么说:
  • 需求:公司一系统升级,要维护的数据库表中已有数据,该表没有序列、触发器等。此表要直接插入一些数据,插入的数据为了和...而本人oracle数据库(应该说所有数据库)很菜,不会啊,于是找度娘,发现如下两篇资料对我有
  • oracle 学习笔记 - commit和rollback

    千次阅读 2017-08-21 14:43:10
    COMMIT 是提交你的DML操作.ROLLBACK 是取消你的DML操作. DML操作主要指一些插数据\更新数据的操作,你的操作在没有COMMIT和ROLLBACK前,都还在本机的SESSION中,还没有更新至数据库。1、首先commit和rollback是在进行...
  • Oracle函数中进行insert操作就会报 ORA-14551: cannot perform a DML operation inside a query,本文给出了问题的原因和解决方法,并给出了使用建议。
  • Oracle如何监控表的DML次数

    千次阅读 2015-12-25 15:58:18
    在数据库技术大会上,做了《构建高可用数据库监控系统》的分享以后,很多朋友对北斗如何实现表的DML次数监控有兴趣,会上因为时间的原因,我只是说有系统视图可以查到这个信息,因此有了本文,可以稍微详细一点来...
  • ORA-14552: 在查询或 DML 中无法执行 DDL

    千次阅读 2016-08-24 13:59:20
    SQL> select fun_test('q_con','14','2','00001','0') from dual; select fun_test('q_con','14','2','00001','0') from dual ...ORA-14552: 在查询或 DML 中无法执行 DDL,提交或回退 ORA-06512: 在"YWPX
  • ORACLE存储过程中如何执行TRUNCATE TABLE

    万次阅读 2015-08-12 10:43:26
     默认在存储过程中是不允许执行truncate table tablename操作,如何执行呢?...truncate是ddl操作语句,在存储过程中,直接能使的是dml操作语句。 解决方案: EXECUTE IMMEDIATE 'TRUNCATE TABLE b'
  • 如何看回滚段的回滚进度

    千次阅读 2013-07-08 21:28:04
    我们在rollback一段DML操作DML操作失败后,都会自动进行回滚。所以你必须耐心等待事务回滚结束后,才能再次进行DML操作,否则将会死锁。但是回滚是系统自动完成的,我们应该如何去得知回滚进度呢?看下面的实验 1...
  • Oracle数据库中的锁

    千次阅读 2019-04-08 21:27:50
    若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的...
1 2 3 4 5 ... 20
收藏数 59,278
精华内容 23,711
关键字:

dml操作 oracle