溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

oracle中怎么通過(guò)調(diào)用java程序連sqlserver2005

發(fā)布時(shí)間:2021-08-03 16:43:55 來(lái)源:億速云 閱讀:135 作者:Leah 欄目:數(shù)據(jù)庫(kù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)oracle中怎么通過(guò)調(diào)用java程序連sqlserver2005,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1、在oracle的sys-sysdba下登陸

寫一個(gè)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驅(qū)動(dòng)
    String a = "0";
       String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=wb"; // 鏈接數(shù)據(jù)庫(kù)服務(wù)和驅(qū)動(dòng)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的方式load到oracle中,也可以利用plsql寫java source)

2、在oracle的sys-sysdba下登陸

用loadjava將sqlserver2005驅(qū)動(dòng)load到oracle,在dos下執(zhí)行:

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

測(cè)試鏈接是否成功:

寫一個(gè)函數(shù):

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';

測(cè)試鏈接!~

(注:一定要在sysdba下執(zhí)行)

Sqlserver2005測(cè)試數(shù)據(jù)庫(kù):

CREATE TABLE [dbo].[msg](

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

    [msg] [varchar](50) NULL

)

3、測(cè)試成功后在普通用戶(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
  );

4、在oracle的sys-sysdba下登陸

New一個(gè)存儲(chǔ)過(guò)程

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

在sys-sysdba下登陸new一個(gè)普通用戶(giapzhxt)下表的觸發(fā)器來(lái)執(zhí)行存儲(chǔ)過(guò)程:

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中怎么通過(guò)調(diào)用java程序連sqlserver2005了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI