`
270585784
  • 浏览: 13755 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

oracle sqlldr用法

阅读更多
public class ConnForOracle
{
    private String url = "jdbc:oracle:thin:@localhost:1521:ORCL";

    private String userName = "oscar";

    private String pwd = "oscar";

    public Connection getConnection()
    {
        Connection con = null;
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            con = DriverManager.getConnection(url, userName, pwd);
            if (con != null)
            {
                System.out.println("success");
            }
        }
        catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
        return con;
    }

    /**
     * 得到oracle连接,防止连接挂死
     * @param timout 超时时间
     * @param driverName 驱动name
     * @param url 数据库连接符
     * @param username 用户名
     * @param password 密码
     * @return 数据库连接
     */
    public static Connection getOracleConn(Long timout, String driverName, final String url,
            final String username, final String password) throws Exception
    {
        Connection connection = null;
        java.util.concurrent.Future<Connection> future = null;
        ExecutorService executor = Executors.newSingleThreadExecutor();
        try
        {
            Class.forName(driverName);

            Callable<Connection> task = new Callable<Connection>()
            {
                public Connection call() throws Exception
                {
                    return DriverManager.getConnection(url, username, password);
                }
            };
            future = executor.submit(task);
            connection = future.get(timout, TimeUnit.SECONDS);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            if (future != null)
            {
                future.cancel(true);
            }
            executor.shutdown();
        }
        return connection;
    }

    public void readAndWrite()
    {
        ConnForOracle con = new ConnForOracle();
        Connection conn = con.getConnection();
        String sql = "select count(1) from broadbandmonitor";
        String sql1 = "select t.id,t.internetusername from broadbandmonitor t ";
        Statement stm = null;
        ResultSet rs = null;
        BufferedWriter buw = null;
        try
        {
            buw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D://aaa.txt")));
            stm = conn.createStatement();
            rs = stm.executeQuery(sql1);
            String id = null;
            String name = null;
            String str = "";
            // if (rs.next())
            // {
            // int count = (int) rs.getLong(1);
            // System.out.println(count + "$$");
            // }
            while (rs.next())
            {
                id = rs.getString(1);
                name = rs.getString(2);
                str = id + "," + name;
                buw.write(str);
                buw.newLine();
            }
            System.out.println("done");
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
        catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
            if (conn != null)
            {
                try
                {
                    conn.close();
                }
                catch (SQLException e)
                {
                    e.printStackTrace();
                }
            }
            if (stm != null)
            {
                try
                {
                    stm.close();
                }
                catch (SQLException e)
                {
                    e.printStackTrace();
                }
            }
            if (rs != null)
            {
                try
                {
                    rs.close();
                }
                catch (SQLException e)
                {
                    e.printStackTrace();
                }
            }
            if (buw != null)
            {
                try
                {
                    buw.close();
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
        }
    }

    public void sqlload(Connection conn)
    {
        Process process;
        try
        {
            // 调用cmd命令
            process = Runtime
                    .getRuntime()
                    .exec(
                            "cmd.exe /c sqlldr userid=oscar/oscar@ORCL.CHINA control=d:\\aaa.ctl log=d:\\logx.log direct=true");
            process.waitFor();
            System.out.println("load succ");
        }
        catch (IOException e1)
        {
            e1.printStackTrace();
        }
        catch (InterruptedException e)
        {
            e.printStackTrace();
        }

        /** sql load for mysql */
        // StringBuffer sb = new StringBuffer();
        // sb.append("load data local infile \"");
        // sb.append("D://aaa.txt");
        // sb.append("\" into table test");
        // sb.append(" FIELDS TERMINATED BY ',' ");
        // try
        // {
        // System.out.println(sb.toString());
        // conn.createStatement().execute(sb.toString());
        // System.out.println("load succ");
        // }
        // catch (SQLException e)
        // {
        // e.printStackTrace();
        // }
        finally
        {
            if (conn != null)
            {
                try
                {
                    conn.close();
                }
                catch (SQLException e)
                {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void main(String[] args)
    {
        ConnForOracle con = new ConnForOracle();
        Connection conn = con.getConnection();
        // con.readAndWrite();
        con.sqlload(conn);
    }
}
分享到:
评论

相关推荐

    Oracle中的sqlldr用法.doc

    Oracle中的sqlldr用法详解 Oracle中的sqlldr工具是用来将数据从外部文件加载到Oracle数据库中的一个命令行工具。sqlldr命令提供了许多参数来控制加载过程,下面将详细介绍这些参数的作用和用法。 userid 参数...

    windowns下利用bat命令+oracle的sqlldr功能导入数据

    总结来说,通过Windows下的BAT命令与Oracle的SQL*Loader功能结合,我们可以构建一个高效的数据库导入流程,尤其在处理大量数据时,这种自动化方法能够显著提高工作效率。在实际应用中,要根据具体需求灵活调整和优化...

    oracle sqlldr 导入乱码问题

    5. 考虑使用其他工具:如果以上方法仍无法解决问题,可以考虑使用其他数据迁移工具,如SQL Developer或PL/SQL Developer,它们通常有更丰富的字符集支持和错误处理机制。 6. 数据库会话设置:在导入数据前,确保...

    sqlldr导入带有自动增加的数据

    在Oracle数据库管理中,SQL*Loader(简称sqlldr)是一个非常强大的工具,用于将外部数据文件中的数据批量加载到Oracle数据库表中。当涉及到处理带有自动增加字段的表时,SQL*Loader提供了一些灵活的方法来确保数据的...

    浅谈ORACLE的SQLLDR

    - Oracle提供了详尽的官方文档和帮助指南,覆盖了SQL Loader的所有功能特性及其使用方法。 - 社区论坛和博客文章也提供了丰富的实际案例和经验分享,有助于用户更好地理解和掌握SQL Loader。 #### 三、SQL Loader...

    oracle最强大的sqlldr上传工具

    Oracle的SQL*Loader是Oracle数据库系统中用于快速批量导入大量数据到数据库的强大工具。它能够高效地处理文本文件,将数据快速转化为...熟练掌握SQL*Loader的使用方法和技巧,能够为数据库管理工作带来极大的便利。

    oracle11G32位客户端sqlldr文件,包含tnsus.msb,ulus.msb及使用方法

    oracle11G32位客户端sqlldr文件,包含tnsus.msb,ulus.msb及使用方法,当使用sqlldr命令报这样的错误时说明缺少以上文件“Message 2100 not found; No message file for product=RDBMS, facility=ULMessage 2100 not...

    关于 Oracle 的数据导入导出及 Sql Loader (sqlldr)

    在本篇中,我们将深入探讨Oracle的数据导入导出及Sql Loader的使用方法。 1. **Oracle数据导入导出** Oracle提供了多种数据导入导出工具,包括`expdp`(Export Data Pump)和`impdp`(Import Data Pump)以及传统的...

    java调用shell脚本执行sqlldr与存储过程

    当需要给非oracle用户配置使用sqlldr时,不单需要配置环境变量,还需要把相关目录的访问权限赋予该用户。【采用此法测试以后还是出现上面的错误】 2、用sh直接执行shell和在java直接执行shell是有区别的,要在shell...

    sqlldr_所有命令及用法

    SQL*Loader,简称sqlldr,是Oracle数据库系统中用于快速加载大量数据到数据库的一个实用工具。它是Oracle Data Pump的一部分,提供了高效的数据导入功能,适用于批量处理大数据量的场景。 1. **sqlldr简介** SQL*...

    定制化客户端,仅包含sqlplus、sqlldr、exp、imp

    配置环境变量的方法与标准Oracle客户端类似,主要涉及设置如ORACLE_HOME、PATH和LD_LIBRARY_PATH等变量,确保系统能找到所需的库文件。 总的来说,这个定制化客户端是针对那些只需要基础数据库操作的用户设计的,它...

    D:\sqluldr2\sqlldr(linux+windows).rar

    **SQL*Loader(SQL Loader...综上所述,这个压缩包提供了一个全面的SQL*Loader使用资源,无论是在Linux还是Windows环境下,用户都能根据提供的案例和指南快速掌握数据导入到Oracle数据库的方法,从而提升数据管理效率。

    oracle sql loader 用法详解

    本文旨在通过实例深入探讨SQL Loader的使用方法,帮助读者快速上手。 #### SQL Loader简介 在不同的操作系统环境下,SQL Loader有不同的调用方式。在Windows系统下,其命令为`SQLLDR`;而在UNIX系统下,则通常为`...

    sqlldr导入csv文档

    通过以上分析,我们了解了SQL*Loader的基本使用方法及其在复杂数据操作中的应用,包括数据导入、更新和插入操作。这些技能对于数据库管理员和开发人员来说都是至关重要的,尤其是在处理大规模数据集时。

    sqlldr报超出字符长度错误

    根据题目中的描述,“sqlldr报超出字符长度错误”,这一问题主要是因为源文件中的数据长度超出了目标表中相应列的定义长度。在SQL*Loader执行过程中,如果某一字段的实际值长度超过了目标表该列的长度,就会触发此...

    sqlldr导入数据

    本篇文章将深入探讨sqlldr的使用方法以及如何通过它来批量导入数据。 首先,我们要理解sqlldr的基本结构。它通过控制文件(如`gl_point.ctl`)来定义数据导入的规则,包括字段映射、数据格式、错误处理等。例如,`...

    我的第一个SQLLDR

    3. **运行SQL*Loader**:使用`sqlldr`命令执行控制文件,将数据从文件导入到数据库。例如: ``` sqlldr username/password@database control=control_file.ctl log=log_file.log ``` 4. **检查和验证**:导入...

    sqlldr数据加载工具(sqlldr的介绍)

    SQL*Loader是Oracle数据库系统提供的一种高效的数据加载工具,它能够快速地将大量数据从操作系统文件导入到Oracle数据库中,特别适用于大型数据仓库的构建。SQL*Loader支持多种数据格式,包括固定宽度、CSV、制表符...

    Oracle批量导入文本文件快速的方法(sqlldr实现)

    最近做项目的时候需要导入一批3000多万条的POI数据到Oracle数据库,简单的插入导入速度太慢,使用sqlldr 批量导入3000多万条数据花了20分钟左右,速度还可以,现在分享给大家,具体方法如下: 1.新建导入控制文件 ...

Global site tag (gtag.js) - Google Analytics