Oracle外部程序的触发小结

在ORACLE触发器里调用JAVA程序 因为项目需要,有一个已经写好的JAVA程序,想要在ORACLE某个表的触发器中调用,以使得每次数据更新时,调用这个JAVA程序,来修改后台某个数据。现将过程记录如下:1。编写JAVA程序 阅读详情
  在论坛里曾经看过一个帖子,有位用户问了这么一个问题:oracle 里一个表插入一条数据,提交后,如何让外部程序收到这个消息?
  当时没有留意,现在想想好像应该可以总结一下了。举例:
  1、过程中:
  declare
  myexcept exception;
  inserted_count1 number;
  inserted_count2 number;
  ...
  begin
  insert into table values(...);
  inserted_count1 := sql%rowcount;
  ... --可以判断inserted_count1是否大于0来确定是否插入了数据
  commit;
  inserted_count2 := sql%rowcount; --这里inserted_count2为0
  ... --事实上,这里一定是提交成功才会执行,否则会跳到exception段
  yourprocess(yourpara);--调用你自己的过程或语句跟别的过程通信
  ...
  exception
  when others then ---你可以根据sqlcode自己去查具体的提交失败原因
  ...
  yourprocess_for_fail(yourpara) --调用你自己的过程跟别的过程通信
  ...
  end;
  2、直接外部操作,建触发器:
  create or replace trigger table after insert for each row
  ...
  begin
  ...
  yourprocess(yourprara);
  ...
  end;
  
  当然,2的方法这只能更总到提交前,如果要监视提交后状态,你可以在操作表建立标志位或专门建个表,操作表发生变化就通过trigger更新变化信息到状态表,扫描状态表就知道是否commit;成功了
  
  我想这位用户应该通过trigger来调用java source来实现插入数据后来通知外部程序来做一些事情:
  使用java source的例子如下:
  SQL> create or replace and compile java source named HelloWorld
  2 as
  3 public class HelloWorld {
  4 public static void db_run (){
  5 System.out.println("Hello World");
  6 }
  7 }
  8 /
  Java created.
  SQL> create or replace procedure run_helloworld
  2 as language java
  3 name 'HelloWorld.db_run()';
  4 /
  Procedure created.
  SQL> set serveroutput on size 5000
  SQL> call dbms_java.set_output(5000) ;
  Call completed.
  SQL>
  SQL> exec run_helloworld ;
  Hello World
  PL/SQL procedure successfully completed.
  上面是调用HelloWorld的例子,你可以修改HelloWorld方法,然后在触发器里面调用以实现这位用户的要求!

本文转自
http://oracle.chinaitlab.com/exploiture/380066.html   
Eplan P8 API二次开发--插入符号(Symbol)功能(Function)并定义属性 1、目的 使用Eplan API在页中自动插入某个符号并按约定规则自动设置好属性 2. 步骤 一、基础信息 比如要在Eplan中自动插入一个电机的符号并定制属性,我们先要确定要插入的符号名,可以在Eplan中获取如下符号(Symbol)信息 可以知道我们待插入的符号名称为M3_1, 接下来,使用Visual Studio建立类库项目,并引用Eplan Api库 二、获取符号变量(SymbolVariant) 在Eplan中,当一个符号(Symbol)被插入到页中,这个符号的引用即变为一个(Function 阅读详情

相关推荐

从零搭建高通8255车载开发环境:QNX SDP、SDK配置与镜像编译全流程

本文详细介绍了如何从零搭建高通SA8255P车载开发环境,涵盖QNX SDP部署、SDK工具链配置到多系统镜像编译的全流程。特别针对SAIL安全岛镜像构建、QNX系统优化及Android系统资源分配等关键技术点提供实战指导,帮助开发团队高效完成车载系统开发与调试。

weixin_33582311的博客 364

oracle 调用外部exe,oracle调用外部程序时报:ora-28575以及ora-28546错误

今天发现一个有关oracle调用外部程序时报:ora-28575以及ora-28546错误,现将问题的现象,原因和处理办法总结如下:SQL> create or replace library GENMAILNUMas '/home/oracle/product/10.2.0/lib/libmailnum.so'; 2/Library created.SQL> CREATE OR R...

weixin_32528123的博客 653

【Benchmark 性能测试全指南:从核心原理到 CINEBENCH 实战解析】

本文深度拆解基准测试(Benchmark)的底层逻辑,详解数据集、工作负载、度量指标三大核心要素,分步演示测试流程与统计分析要点。结合 CINEBENCH R23 实战案例,揭秘 CPU 性能评估方法论,助你掌握系统性能量化与优化的核心技能。

rong_ha_ha的博客 6327

oracle触发器调用外部jar程序,oracle触发器调用java程序

importjava.io.BufferedReader;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.io.StringWriter;importjava.net.InetSocketAddress;importjava.net.Socket;impo...

weixin_33711795的博客 608

ESP32+ST7789 LCD屏实战:5分钟搞定中文显示与图片渲染(附完整代码)

本文提供了一份详细的ESP32驱动ST7789 LCD屏幕的实战指南。通过清晰的SPI硬件连接说明、ESP-IDF框架下的初始化代码,以及图片渲染与中文字库构建的核心算法,帮助开发者快速实现中文显示与图片渲染功能,并附有完整的代码示例和性能优化技巧。

weixin_29189377的博客 437

DM达梦数据库远程客户端工具连接6001错误,disql可以正常连接

DM达梦数据库远程客户端工具连接6001错误,disql可以正常连接

weixin_45906061的博客 4509

oracle 触发器 调用脚本,oracle触发器使用总结

触发器 是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。触发器是许多关系数据库系统都提供的一项技术。在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块。1.说明1)触发器是一种特殊的存储过程,触发器一般由事件触发并且不能接受参数,存储器由语句块去调用2)触发器分类:1.DML触发器: 创建在表上,由DML事件引发2.inste...

weixin_42628846的博客 758

iOS逆向实战:绕过SSL Pinning抓取ChatGPT设备令牌

在移动应用安全与网络协议分析领域,中间人攻击是一种核心的流量拦截与分析技术。其原理是在客户端与服务器之间插入一个代理节点,通过伪造数字证书来解密和窥探HTTPS加密流量。这项技术的工程价值在于,它使开发者能够调试API、分析通信协议以及实现自动化集成。然而,许多高安全要求的应用(如金融、社交类App)会采用SSL Pinning(证书绑定)技术来抵御此类攻击,这为逆向工程带来了挑战。本文聚焦于一个具体的应用场景:如何针对启用了SSL Pinning的ChatGPT iOS客户端,通过特定的工具链(如Trol

weixin_28235889的博客 974

oracle触发器调用java程序

1、创建java程序:接收存储过程传递的参数,发送socket通信。 Java代码   create or replace and compile java source named jym as    import java.io.BufferedReader;    import java.io.InputStream;    import java.io.InputStreamR

Frist_huangsuli的专栏 6694

10X Genomics单细胞数据分析实战:从FASTQ到UMAP可视化的完整流程

本文详细介绍了10X Genomics单细胞数据分析的完整流程,从FASTQ原始数据处理到UMAP可视化。通过Seurat工具包实现数据质量控制、标准化、降维聚类和细胞注释,特别适合生物信息学新手学习。文章包含可复现的代码示例和常见问题解决方案,帮助研究者快速掌握单细胞测序数据分析的核心技术。

weixin_30952535的博客 535

python多线程实现http代理

python多线程实现http代理文章要求1.py socket模块2.py threading模块3.环境搭建3.1设置代理3.2搭建http简单服务器代码分析1.完整代码2.逻辑结构 文章要求 1.py socket模块 socket模块接触后很简单,我实现的是阻塞性的套接字。 需要了解到,连接套接字,监听套接字,和套接字accept()方法的返回值是元组 数据传递过程sock.recv(1024),sock.send()也不需要转换编码,直接以b"二进制流"传输 2.py threading模块 th

qq_43402663的博客 2508

PL/SQL 使用Java Source 编程

转:https://blog.youkuaiyun.com/wangxw8746/article/details/9986415 1 create or replace and compile java source named Hello as public class Hello { public static void run() { System.out.println("h...

qq_37178232的博客 848

绝缘检测是什么? 绝缘检测原理 绝缘检测检测的是什么?那个量?电压?电流?电阻?

绝缘电阻是电气设备和电气线路最基本的绝缘指标。对于低压电气装置的交接试验,常温下电动机、配电设备和配电线路的绝缘电阻不应低于0.5MΩ(对于运行中的设备和线路,绝缘电阻不应低于1MΩ/kV)。 绝缘电阻的正确测量方法 现代生活日新月异,人们一刻也离不开电。在用电过程中就存在着用电安全问题,在电器设备中,例如电机、电缆、家用电器等。 影响因素 环境温湿度 一般材料的绝缘电阻值随环境温湿度的升高而减小。相对而言,表面电阻(率)对环境湿度比较敏感,而体电阻(率)则对温度较为敏感。 湿度增加,表面泄漏增大,导体电导

dianqicyuyan的博客 2万+

[Oracle]Oracle外部程序的触发小结

转载:http://www.verydemo.com/demo_c158_i54099.html 在论坛里曾经看过一个帖子,有位用户问了这么一个问题:oracle 里一个表插入一条数据,提交后,如何让外部程序收到这个消息? 当时没有留意,现在想想好像应该可以总结一下了。举例: 1、过程中:<ccid_nobr>bordercolorlight = "black" bord...

iteye_19700的博客 368

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Oracle外部程序的触发

oracle 里一个表插入一条数据,提交后,如何让外部程序收到这个消息?      1、过程中:...   declare   myexcept exception;   inserted_count1 number;   inserted_count2 number;   ...   begin   insert int...

whz110的专栏 265

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

基于oracle的增量数据采集

之前调研了下基于mysql的数据增量采集方案,目前有阿里的canal和Open Replicator,均是基于MySQL binlog分析的开源项目。Open Replicator仅提供了binlog解析;canal基于数据库增量日志解析,提供增量数据订阅&消费,在binlog分析的基础上进行了封装,并有相匹配的canal消费端项目开源: Otter(分布式数据库同步系统),相对有一套比较完整的增...

sheungxin的博客 2153

oracle调用外部C DLL

什么是外部程序?一个外部程序是存储在一个动态链接库(DLL)中的第三代语言程序,使用PL / SQL注册,并通过你叫做特殊处理。该例程必须从C调用,但可以用任何语言编写。在运行时,PL / SQL动态加载库,然后调用该程序就像是PL / SQL子程序一样。为了保护您的数据库,例程运行在单独的地址空间中。但是,它完全参与了当前的交易。此外,例程可以回调数据库进行SQL操作。外部程序提高了可重用性,效率

Binary 3729

ORACLE触发器详解

本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2.3 创建替代(INSTEAD OF)触发器 8.2.3 创建系统事件触发器 8.2.4 系统触发器事件属性 8.2.5 使用触发器谓词

问天的专栏 515

Oracle数据库触发器如何调用Java程序实现Openfire消息推送

该教程需要实现Oracle调用Java程序向客户端消息,也可以学习触发器的使用,Oracle调用Java程序对用户授权命令。

七步诗 4174

oracle调用外部程序小例

例如: 调用java的存储过程: SQL> create or replace and compile java source named HelloWorld 2 as 3 public class HelloWorld { 4 public static void db_run (){ 5 System.out.println("Hel...

iteye_18080的博客 468

Oracle触发器调用外部java

导入jar包和外部java代码 当导入Java文件时,可以用如下命令:   loadjava –u username/userpassword –v -resolve filename.java 当导入jar文件时,可以用如下命令:   loadj

老夏的专栏 2055

Oracle10gScheduler特性

转 Oracle 10g Scheduler 特性https://blog.youkuaiyun.com/tianlesoftware/article/details/4715218 Scheduler 可以简单简单的帮助我们调度成百上千的tasks。Oracle Scheduler 通过在DBMS_SCHEDULER PL/SQL 包中存储和过程来执行。 一. 使用Jobs ...

rede 808

0925 视图、游标、包、触发器、索引

一、视图的特点 是一个数据库中虚拟的表;经过查询操作形成的结果;具有普通表的结构;不能实现数据的存储;对视图的修改将会影响实际的数据表。 --添加视图 create or replace view emp_dept_view as select* from emp natural join dept; --查询视图 select * from emp_dept_view; --删除视

xuezhezhiying的博客 249

oracle 存储过程和触发器,在外部程序中,不能使用多线程调用吗?

最近车辆管理管理在过车事件触发有个地方出了行死锁,为了封装数据库层的业务逻辑,我写了个存储过程供java程序调用,java框架是 springmvc+mybatis,用的是自动提交模式。存储过程里,我是Update了另一个远程库的表的状态,结果在实际的过车过程中,频繁导致行 死锁,状态没有更新。我和另一个技术员讨论,他振振有词地说:你不知道存储过程和触发器(刚开始是用的触发器,结果老丢数据,后来...

liuji0517的博客 673

Oracle Database 11g体系结构 系列三

数据保护 可以完全控制数据的访问权限。 可以授权其他用户对对象执行特定操作(如select, insert等)的权限。 可以对角色授权,然后再把角色授予用户,从而将权限分成可管理的组。   可编程的结构 PL/SQL - 可以使用PL/SQL创建存储过程和函数,而且可以再查询中调用创建的函数。过程和函数可以集中放到程序包中。 还可以创建触发器,用于告诉数据库当在数据库...

weipeng优快云的博客 166
上一篇: Oracle SQL性能优化技巧大总结
下一篇: ORACLE索引与高性能SQL介绍
superjava_2006
博客等级 码龄20年 39粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值