`

PL/SQL开发 触发器调用java程序

阅读更多

1、创建java程序

create or replace and compile java source named sms as

 

import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

 

public class SMS

{

  public static String entry(String id)

  {

         String datas = "d:\\oracleFile\\oracle.txt";

        File data = new File(datas);

        StringBuffer backup = null;

        try {

          StringBuffer content = new StringBuffer();

          backup = new StringBuffer();

          BufferedReader san = new BufferedReader(new FileReader(data));

          String line = null;

          while ((line = san.readLine()) != null) {

            backup.append(line);

            backup.append("/n");

          }

          content.append("15 ");

          content.append(" oracle.txt");

          content.append("/n");

 

          content.append(id);

 

          FileWriter writer = new FileWriter(data, false);

          writer.write(content.toString());

          writer.flush();

 

        } catch (FileNotFoundException e) {

          e.printStackTrace();

        } catch (IOException e) {

          try {

            FileWriter writer = new FileWriter(data, false);

            writer.write(backup.toString());

            writer.flush();

        } catch (Exception ex) {

          ex.printStackTrace();

        }

      }

      return id +="OK";    

  }

}

2、创建触发器

CREATE OR REPLACE TRIGGER LOADING_TRIGGER

  AFTER INSERT OR UPDATE OR DELETE ON LOADCHANG_MAIN

  FOR EACH ROW

DECLARE

  OPT1 VARCHAR2(50);

BEGIN

  IF INSERTING THEN

    OPT1 := 'INSERT';

  ELSIF UPDATING THEN

    OPT1 := 'UPDATE';

  ELSIF DELETING THEN

    OPT1 := 'DELETE';

  ELSE

    OPT1 := 'UNKNOWN';

  END IF;

    DBMS_OUTPUT.PUT_LINE(TESTFUN(OPT1));

END LOADING_TRIGGER;

3、创建函数

CREATE OR REPLACE FUNCTION testFun(file in varchar2) return varchar2

AS LANGUAGE JAVA NAME 'SMS.entry(java.lang.String) return java.lang.String';

4、以管理员身份登陆数据库

由于要读写文件,需要对数据库用户进行文件读写授权,因此需要以管理员身份登陆数据库对用户授权

begin

dbms_java.grant_permission('GLMF','SYS:java.io.FilePermission','d:\oracleFile\*','read,write,delete');

end;

对GLMF用户授权可对D盘oracleFile文件夹下的所有文件及文件夹进行读写删除操作。

 

 ----------------------------------------8******************************************

加载java文件到数据库中,首先登陆到数据库服务器

1)加载jar到oracle数据库中

loadjava -r -f -verbose -resolve -user xmlbook/xmlbook xmlparserv2.jar

2)加载class到oracle数据库中

loadjava -r -f  -user user_name/password[@URL] oracle/AAA/bbb/CCC.class

3)移除

dropjava -r -f  -user user_name/password[@URL] [option_list] file_list

*******************************************************************************

create or replace and compile java source named send_sms as

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.UnsupportedEncodingException;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;

 

public class SEND_SMS

{

 

  public static String entry(String mobile,String content)

  {

     String result = "false";

     try 

     {

 result = readContentFromGet("mobile="+mobile+"&message="+URLEncoder.encode(content,"utf-8"));

 } 

      catch (UnsupportedEncodingException e) 

      {

 e.printStackTrace();

       }   

       return result;

  }

  

  public static String readContentFromGet(String parm) {

String getURL = "http://IP:PORT/api/sms/send.ashx?appid=sunisco-shared&" + parm;

HttpURLConnection connection = null;

    String res = "false";

try{

URL getUrl = new URL(getURL);

connection = (HttpURLConnection) getUrl.openConnection();

connection.connect();

BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));

      String lines;

while ((lines = reader.readLine()) != null) {

res = lines;

}

reader.close();

}catch(Exception e){

e.printStackTrace();

}finally{

if(connection != null){

connection.disconnect();

}

}

    return res;

}

 

}

 

 

 

 

exec dbms_java.grant_permission('zhym','SYS:java.net.SocketPermission','192.168.9.12:18002','connect,resolve') 

分享到:
评论

相关推荐

    PL/SQL Developer 6.05注册版-1

    PL/SQL Developer(pl/sql)是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。 <br>此版本包含注册文件和简体中文语言安装包 <br>Enhancements in PL/SQL Developer 7.1.5 ====================...

    PL/SQL Developer v8.0.zip

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    PL/SQL Developer 7.1.5 注册版-3

    PL/SQL Developer(pl/sql 7.1.5)是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。 <br>此版本包含注册文件和简体中文语言安装包 <br>Enhancements in PL/SQL Developer 7.1.5 ==============...

    PL/SQL Developer8.04官网程序_keygen_汉化

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    PL/SQL Developer

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    pl/sql developer 9 + 注册机

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    PL/SQL Developer 7.1.5 注册版

    PL/SQL Developer(pl/sql 7.1.5)是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。 <br>此版本包含注册文件和简体中文语言安装包 <br>Enhancements in PL/SQL Developer 7.1.5 ==============...

    ORACLE PL/SQL 基础教程及参考

    PL/SQL语言是的SQL语言扩展,具有为程序开发而设计的特性,如数据封装、异常处理、面向对象等特性。 PL/SQL是嵌入到Oracle服务器和开发工具中的,具有很高的执行效率和同Oracle数据库的完美结合。在PL/SQL模块中可以...

    Oracle.Database.11g.PL_SQL.Programming

    通过学习书中的代码和图例,您不仅能访问和修改数据库信息,编写功能强大的PL/SQL 语句,执行有效的查询和部署稳固的安全性,还能轻松实现C、C++ 和Java 过程,建立可启用Web 的数据库,缩短开发时间和优化性能。...

    pl/sql代码

    包含一些基本的sql语句代码及存储过程,触发器过程调用

    PLSQL Developer 7.1.5

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    PL-SQL教程(私塾在线)视频配套学习资料

    PL/SQL的学习教程资料,由Java私塾制作,配套视频由私塾在线提供. 系统学习PL/SQL的结构化编程(包括游标、异常、包、触发器、动态sql等);掌握使用jdbc调用存储过程。

    Oracle11gPLSQLProgramming

    通过学习书中的代码和图例,您不仅能访问和修改数据库信息,编写功能强大的PL/SQL 语句,执行有效的查询和部署稳固的安全性,还能轻松实现C、C++ 和Java 过程,建立可启用Web 的数据库,缩短开发时间和优化性能。...

    Allround Automations PLSQL Developer 13.0.5.1908 + x64.zip

    随着时间的推移,我们已经看到越来越多的业务逻辑和应用程序逻辑进入 Oracle Server,因此 PL/SQL 编程已经成为整个开发过程的重要组成部分。 PL/SQL Developer 专注于易用性,代码质量和生产力,以及 Oracle 应用...

    PLSQL Developer(免安装、汉化版,很好用的) 8.0.3.1510.rar

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    PLSQL程序设计

    第一章 PL/SQL 程序设计简介 4 §1.2 SQL与PL/SQL 4 §1.2.1 什么是PL/SQL? 4 §1.2.1 PL/SQL的好处 4 §1.2.2 PL/SQL 可用的SQL语句 5 §1.3 运行PL/SQL程序 5 第二章 PL/SQL块结构和组成元素 6 §2.1 PL/SQL块 6 ...

    PLSQLDeveloper下载

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    PL/SQL实战第一章

    1.7 过度使用触发器......................................15 1.8 过度提交.................................................15 1.9 过度解析.................................................16 1.10 小结.......

Global site tag (gtag.js) - Google Analytics