DBLink创建方法

本文介绍了如何使用SQL语句创建DBLink以实现数据库间的连接,并演示了一个具体的例子。此外,还提供了一段Java代码来展示如何在Oracle数据库中插入Blob类型的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DBLink创建方法

 create database link dblinkName connect to touser identified by "password" using '在本地配置的链接'

使用

select * from tableName@dblinkName;

 

create table tableName as select * from tableName@dblinkName;可以将远程的数据导入到现有数据库。

 

Blob使用:

 public static int insertBlob(String filepath){
        int i = 0;
      
          Connection conn = null;
          Statement st = null;
          ResultSet rs = null;
        try {
            //通过JDBC获得数据库连接
             conn =  DBConnection.getConnection();
            //设置数据库为不自动提交,必须的一步
            conn.setAutoCommit(false);
            st = conn.createStatement();
            //插入一个空对象empty_blob()
            String insertSql = "insert into MOF_DOC_BLOB (ID, FILEPATH, CONTENT) values (1,'"+filepath+"', empty_blob())";
            i = st.executeUpdate(insertSql);
            String selectSql = "select CONTENT from MOF_DOC_BLOB where ID=1 for update";
            rs = st.executeQuery(selectSql);
            if (rs.next()) {
                //得到流  
                oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob(1);
                //从得到的低级流构造一个高级流  
                PrintStream ps = new PrintStream(blob.getBinaryOutputStream());
                BufferedInputStream bis;

                try {
                    bis = new BufferedInputStream(new FileInputStream(filepath));
                    byte[] buff = new byte[1024];  
                    int n = 0;
                    //从输入到输出
                     while ((n = bis.read(buff)) != -1) {  
                             ps.write(buff, 0, n);  
                              }
                    //清空流的缓存  
                    ps.flush();  
                    //关闭流,注意一定要关  
                    ps.close();  
                    bis.close();
                } catch (FileNotFoundException e) {
               
                    System.out.println("Util.java================>insert BLOB file not fonud");
                    return 1;
                } catch (IOException e) {
                    System.out.println("Util.java================>insert BLOB error");
                    return 1;
                }
            }
            return i;
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("get conn error!");
            return 1;
        }finally {
                    try {
                        if(rs != null){
                            rs.close();
                        }
                           if(st !=null){
                               st.close();
                           }
                            if (conn != null) {
                            conn.close();
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                }
       
    }

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值