Heim >Datenbank >MySQL-Tutorial >oracle调用java程序连sqlserver2005

oracle调用java程序连sqlserver2005

WBOY
WBOYOriginal
2016-06-07 15:51:231094Durchsuche

oracle 调用 java 程序连 sqlserver2005 1 、在 oracle 的 sys-sysdba 下登陆 写一个 java source 程序链接 sqlserver2005 : create or replace and compile java source named test as import java.sql.Connection; import java.sql.DriverManager; import

oracle调用java程序连sqlserver2005

1、在oraclesys-sysdba下登陆

写一个java source程序链接sqlserver2005

create or replace and compile java source named test as
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class excutesql1
{
    public static String entry(String str1,String str2) {

       String driverName =
"com.microsoft.sqlserver.jdbc.SQLServerDriver";
      
// 加载jdbc驱动
    String a =
"0";
       String dbURL =
"jdbc:sqlserver://localhost:1433;DatabaseName=wb"; // 链接数据库服务和驱动sample
       String userName =
"sa"; // 用户名
       String userPwd =
"giap"; // 密码
       Connection dbConn;

       try {
      a =
"1";
           Class.forName(driverName);
           dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
           String sql =
"insert into ry_jbxx (RYBH,XM) values ('" + str1
                  +
"','" + str2 + "')";
           PreparedStatement pstmt = dbConn.prepareStatement(sql);
           pstmt.addBatch();
           pstmt.executeBatch();
      a =
"2";
       } catch (Exception e) {
           e.printStackTrace();
      a =
"error";
          
       }
    return a;
    }
}

 

(注:java程序可以用loadjava的方式loadoracle中,也可以利用plsqljava source

 

 

 

2oraclesys-sysdba下登陆

loadjavasqlserver2005驱动loadoracle,在dos下执行:

loadjava -u sys/giap@zhxtdb -r -v   sqljdbc.jar

测试链接是否成功:

写一个函数:

create or replace function insert2(a varchar2, b varchar2) return varchar2 as
 language java name
'excutesql1.entry(java.lang.String,java.lang.String) return java.long.String';

测试链接!~

(注:一定要在sysdba下执行)

Sqlserver2005测试数据库:

CREATE TABLE [dbo].[msg](

    [tel] [varchar](50) NOT NULL,

    [msg] [varchar](50) NULL

)

 

 

 

 

 

 

3、测试成功后在普通用户(giapzhxt)下建表:

create table MSG
(
  TEL VARCHAR2(
20),
  MSG VARCHAR2(
200)
)
tablespace GIAPDATA
  pctfree
10
  initrans
1
  maxtrans
255
  storage
  (
    initial
64K
    minextents
1
    maxextents unlimited
  );

4oraclesys-sysdba下登陆

New一个存储过程

create or replace procedure insertsqlserver2005(a varchar2, b varchar2) as
  language java name
'excutesql1.entry(java.lang.String,java.lang.String)';

sys-sysdba下登陆new一个普通用户(giapzhxt)下表的触发器来执行存储过程:

create or replace trigger tri_zhxt_msg
  after insert on giapzhxt.msg 
  for each row
begin
  insertsqlserver2005(:new.tel,:new.msg);
end tri_zhxt_msg;

 

 

实现:oracle中的表通过java程序向sqlserver2005表中写数据!~

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn