`
zhengguangyi130
  • 浏览: 2081 次
  • 性别: Icon_minigender_1
  • 来自: 福建
最近访客 更多访客>>
社区版块
存档分类
最新评论

Oracle 的 Autonomous_transaction( 自由性交易)

阅读更多
建立自由性交易, 使用名为autonomous_transaction的编译指示(编译命令,如, #include), 这个编译命令要放在declare里面.


Delcare or replace procedure procedure_name(params, types)


AS


PRAGMA AUTONOMOUS_TRANSACTION;





当程序执行的时候,pl/sql 会把autonomous_transaction当成独立存在的区域来处理.

用途是用在记录程序事件,不影响程序的进行.






一切用pl/sql 代码说话:




/* Formatted on 2006/04/27 14:05 (Formatter Plus v4.8.7) */


--test autonomous transaction


CREATE TABLE logging_infos(log_info VARCHAR2(200), log_time DATE);


COMMIT ;








/* Formatted on 2006/04/27 14:05 (Formatter Plus v4.8.7) */


--create autonomous transaction procedure





CREATE OR REPLACE PROCEDURE logging_info (


log_info_in VARCHAR2,


log_time_in DATE


)


--If your procedure's name is exit in oracle( DB) , then you cann't use it to declare a procedure with the same name


AS


PRAGMA AUTONOMOUS_TRANSACTION;


BEGIN


INSERT INTO logging_infos


(log_info, log_time


)


VALUES (log_info_in, log_time_in


);





COMMIT;


END;








books;





--create main procedure





CREATE OR REPLACE PROCEDURE book_insert (


isbn_in VARCHAR2,


title_in VARCHAR2,


summary_in VARCHAR2,


author_in VARCHAR2,


date_published_in DATE,


page_count_in NUMBER


)


AS


BEGIN


INSERT INTO books


(isbn, title, author, date_published,


page_count


)


VALUES (isbn_in, title_in, author_in, date_published_in,


page_count_in


);





-- call autonomous transcation


logging_info ('aaron_sys', SYSTIMESTAMP);


ROLLBACK;


--rollback for main procedure , not the autonomous transcation


EXCEPTION


WHEN OTHERS


THEN


dbms_ouput.put_line (SQLERRM);


END;





--test the main procedure





BEGIN


book_insert ('ISBN987654321',


'TEST2',


'summary:ddddd',


'Aaron',


TO_DATE ('2006-04-25', 'yyyy-mm-dd'),


88


);


END;





--successfuly completed





SELECT *


FROM books; ---doesn't have the add info


SELECT *


FROM logging_infos; --the logging info is added .








自动交易(autonomous_transaction 繁体版本的书,简体翻译成自由性交易或事前交易,还是觉得自由性交易比较好) , 一定要用commit or rollback, 如果不用的结果就是:




可以编译,但是在执行的时候会提示:




ORA-06519: active autonomous transaction detected and rolled back

ORA-06512: at "SYS.LOGGING_INFO", line 10

ORA-06512: at "SYS.BOOK_INSERT", line 15

ORA-06512: at line 2




建立自由性交易, 使用名为autonomous_transaction的编译指示(编译命令,如, #include), 这个编译命令要放在declare里面.


Delcare or replace procedure procedure_name(params, types)


AS


PRAGMA AUTONOMOUS_TRANSACTION;





当程序执行的时候,pl/sql 会把autonomous_transaction当成独立存在的区域来处理.

用途是用在记录程序事件,不影响程序的进行.







分享到:
评论

相关推荐

    Oracle自治事务的介绍(Autonomous_Transactions)

    Oracle自治事务的介绍(Autonomous_Transactions) Oracle自治事务是一种特殊的数据库事务机制,允许在调用事务的上下文中执行独立的事务。这种机制使用PRAGMA_AUTONOMOUS_TRANSACTION语句来定义自治事务。自治事务...

    Oracle数据完整性嵌套事务调用分析研究

    在 Oracle 中,我们可以使用 PRAGMA AUTONOMOUS_TRANSACTION 语句来声明自治事务。 例如,在Proc_SaveBill存储过程中,我们可以使用自治事务来生成单据编号: ```sql CREATE OR REPLACE PROCEDURE Proc_SaveBill AS...

    Oracle_从零开始Oracle_从零开始Oracle_从零开始Oracle_从零开始Oracle_从零开始

    Oracle云服务提供了一种在云端运行和管理Oracle数据库的解决方案,包括Oracle Autonomous Database,它自动化了数据库管理,如备份、恢复、优化等,降低了数据库运维的复杂度。 十、持续学习与认证 Oracle认证是...

    Oracle Autonomous Data Warehous(ADW)操作手册.docx

    Oracle Autonomous Data Warehouse (ADW) 是Oracle云服务中的一款完全托管的数据仓库解决方案,它提供了高效、自动化的数据处理和分析能力。本操作手册将引导您完成在Oracle Cloud Infrastructure (OCI) 上搭建和...

    PDF FILES_nonlinearcontrol_Autonomous_ProgrammableLogic_Discreti

    标题中的“PDF FILES_nonlinearcontrol_Autonomous_ProgrammableLogic_Discreti”暗示了讨论的主题涉及非线性控制、自主系统、可编程逻辑控制器(PLC)以及离散化等概念。这些关键词都是信息技术与自动化领域的重要...

    Arduino-ros_autonomous_car.zip

    Arduino-ros_autonomous_car.zip,基于Arduino和Udoo/Raspberry的ROS包控制自主遥控车,使用廉价的Arduino类硬件驱动ROS驱动的自主汽车,Arduino是一家开源软硬件公司和制造商社区。Arduino始于21世纪初,深受电子制造...

    FLAIRS00-001_Autonomous_

    标题“FLAIRS00-001_Autonomous_”和描述“Autonomous Automobile Behavior”涉及的主题是自动驾驶汽车的行为研究。在这个领域,我们探讨的是如何让车辆在没有人类驾驶员干预的情况下安全、有效地运行。这一技术是...

    Introduction_to_Autonomous_Mobile_Robots

    mobile robots introduction about robots

    Autonomous_Obstacle_Avoidance_Car.rar_Avoding car_SIMULINK_ardui

    标题中的"Autonomous_Obstacle_Avoidance_Car"指的是一个自动避障汽车项目,而"Ardui"通常指的是Arduino,这是一个开源电子平台,常用于DIY电子项目和机器人制作。"SIMULINK_ardui"表明这个项目是通过Simulink进行...

    ihar_Intelligentsystem_IntelligentSystems_Autonomous_matlab_

    /20200831/1a26f9d6ba57683bc650091bf54a94f3.zipA great deal of research effort is being expended at present to developintelligent autonomous systems. A brief overview of intelligent autonomous system ...

    oracle触发器调用存储过程

    在PL/SQL程序块中,可以通过使用PRAGMA AUTONOMOUS_TRANSACTION命令来定义自治事务。自治事务必须遵循以下规则:如果要被定义为自治事务的程序是匿名的,则它必须是一个最外层的程序块。如果不是匿名的,则它必须是...

    oracle自治事务(Trigger)

    通过声明`Pragma Autonomous_Transaction;`,可以在触发器内创建一个独立于当前数据库会话的事务环境。这意味着在触发器内部进行的操作不会影响到触发器外的事务状态,同时外部事务的状态变化也不会影响到触发器内部...

    Introduction_to_Autonomous_Mobile_Robots(2nd edition)

    特别是在移动机器人的运动学与动力学问题上,作者们从基础的原理出发,逐步引入了腿部移动机器人的配置及稳定性问题,以及动力学的考量。这些内容是理解移动机器人如何在真实世界中行动的关键。 本书的编辑罗纳德·...

    RaimSt.rar_Autonomous_FAULT DETECTION _RAIM_基线 matlab_故障检测机

    该MATLAB程序确定用于非精确接近飞行阶段的接收机自主完整性监测(RAIM)基线标准算法(恒速率算法)和指定的输入数据集的可用性和故障标志(故障检测)。

    超详细Oracle教程_PP.zip

    11. **Oracle云服务**:Oracle Cloud提供了多种云数据库服务,如Autonomous Database,这可能是教程中的现代趋势内容。 这个超详细Oracle教程很可能会深入每个主题,并提供实例和练习来帮助学习者实践。此外,PDF...

    Oracle中怎样用自治事务保存日志表

    要创建一个自治事务,您必须在匿名块的最高层或者存储过程、函数、数据包或触发的定义部分中,使用PL/SQL中的PRAGMA AUTONOMOUS_TRANSACTION语句。在这样的模块或过程中执行的SQL Server语句都是自治的。

    Autonomous_Guidance_MPC_and_LQR-LMI:自动驾驶汽车的运动学MPC和动态LPV-LQR状态反馈控制

    运动学MPC和动态增益调度状态反馈,用于控制自动驾驶汽车 该项目使您可以使用高级控制理论来解决自主制导问题。 该项目的创新部分是使用运动车辆模型的Takagi-Sugeno(TS)表示。 这使我们能够将非线性优化问题解决...

    oracle 存储过程学习

    `PRAGMA AUTONOMOUS_TRANSACTION`允许存储过程中执行非事务性操作,例如查询数据库快照。 **示例**:使用`PRAGMA AUTONOMOUS_TRANSACTION`。 ```sql CREATE OR REPLACE PROCEDURE check_data IS PRAGMA AUTONOMOUS...

    oracle批量删除数据

    PRAGMA AUTONOMOUS_TRANSACTION; n_delete NUMBER := 0; BEGIN WHILE 1 = 1 LOOP EXECUTE IMMEDIATE 'DELETE FROM ' || p_TableName || ' WHERE ' || p_Condition || ' AND ROWNUM USING p_Count; IF SQL%...

    Embedded_Autonomous_LAB

    2. **操作系统选择**:在“Embedded_Autonomous_LAB”中,可能使用了实时操作系统,如FreeRTOS、VxWorks或嵌入式Linux,因为它们能提供必要的稳定性和响应时间,对自主系统的实时决策至关重要。 3. **传感器与感知*...

Global site tag (gtag.js) - Google Analytics