Oracle:从SQL文件批量导入数据

  1. 进入DOS界面。
  2. 进入SQL文件目录。
  3. 在命令提示下运行SqlPlus,c:\sql>sqlplus user_name/[email protected]_service_name
  4. 指定SQL执行日志文件,日志文件名任意,但必须以log为后缀名:sql>spool e:\temp\a.log
  5. 创建批量执行文件。如果要批量执行多个SQL文件,可以创建一个list文件,例如list.sql,里面列出每个SQL文件,以@@开头,例如
    @@a.sql;
    @@b.sql;
  6. 调用批量执行文件,sql>@list.sql
  7. 如果只执行单个SQL文件,可以直接调用,sql>@@a.sql
  8. SQL命令执行完毕之后,查看日志文件,看看是不是有“错误”。
  9. 如果没错误,调用sql>spool off
  10. 退出sqlplus,退出后数据才会真正写入oracle,sql>exit

注意,SQL文件中的第一行SQL命令,必须以分号结尾。

时间: 2024-10-14 00:56:27

Oracle:从SQL文件批量导入数据的相关文章

sql文件批量导入mysql数据库

有一百多个sql文件肿么破?一行一行地导入数据库肯定是极其愚蠢的做法,但是我差点就这么做了... 网上首先找到的方法是:写一个xxx.sql文件,里边每一行都是source *.sql ...,之后再mysql中去调用source xxx.sql,结果失败,失败原因:Error 2, cannot open file xxxxxxxxx,大概这个样子.这种方法貌似在windows上是可用的,不过貌似还要把sql文件放在mysql/bin目录下才可以生效. 之后找到的解决方案是利用shell脚本,

csv文件批量导入数据到sqlite。

代码: f = web.input(bs_switch = {})  # bs_switch 为from表单file字段的namedata =[i.split(",") for i in f["bs_switch"].file.read().split()[1:]] #这里的步骤: #1.读取导入的内容:f["bs_switch"].file.read() #2.因为导入的内容为str,转化为列表.用split(). #3.因为csv文件的第一栏

Oracle 中sql文件的导入导出

导出 一般导入的时候我用的是命令行 imp c##zs/111@orcl fromuser=c##zs touser=c##zs file=D:\java\950.dmp ignore=y c##zs 是创建的用户  111是密码 Oracle 不像Mysql 直接进行 主键进行自增 接下来有两种方法 1.使用图形化界面 选中表然后右键 选中创建(序列中的主键) 这就可以了 ,建议刷新一下. 另外一种方式(选中创建的时候) 选中插入,删除,更新中的一个 我选择插入点击确认 在这里我们只需要编写b

利用OLEDB+SqlClient实现EXCEL批量导入数据

以下是几个自己写的类 /// <summary> /// 取得Excel对象 /// </summary> /// <param name="strConn">OLEDB连接字符串</param> /// <param name="sql">SQL语句</param> /// <returns></returns> public static DataTable GetE

redis pipe 批量导入数据

redis pipe 批量导入数据 速度非常快, 文本需要支持redis的协议, 使用Python生成文件 代码如下 delimiter = "\r\n" data = "*3" + delimiter + "$3" + delimiter + "set" + delimiter + "$" + str(len(row[0])) + delimiter + row[0] + delimiter + &quo

SQL Server高速导入数据分享

SQL Server高速导入数据,能够尝试的方法例如以下:CTE.OpenRowSet/OpenDataSource.BULK INSERT.bcp.Shell. 以下依次介绍这几种办法. 1.CTE 首先.我们看看什么是CTE. 公用表表达式(Common Table Expression)是SQL SERVER 2005版本号之后引入的一个特性. CTE能够看作是一个暂时的结果集,能够在接下来的一个SELECT,INSERT,UPDATE,DELETE,MERGE语句中被多次引用.使用公用表

数据库中批量导入数据,有两列的值需要从其他表中查出来,我现在没有思路,求解惑

我现在批量往数据库里导正式数据(sql insert),但是数据中有三列分别是岗位,办事处,大区,给的数据中只给了岗位的值,办事处的值可以通过岗位值在岗位表查到,大区的值可以通过办事处的值在办事处表里查到.现在我已经把其他数据都导进去了,只剩办事处和大区没有值,我该如何批量更新这两列的值啊 导入的数据的表: 岗位表: 办事处表: 本人sql不是很好,希望sql大神能给出来解惑一下,拜谢~ 数据库中批量导入数据,有两列的值需要从其他表中查出来,我现在没有思路,求解惑 >> mysql 这个答案描

Redis批量导入数据的方法

有时候,我们需要给redis库中插入大量的数据,如做性能测试前的准备数据.遇到这种情况时,偶尔可能也会懵逼一下,这里就给大家介绍一个批量导入数据的方法. 先准备一个redis protocol的文件(redis protocol可以参考这里:https://redis.io/topics/protocol),这里是用java程序来输出的,java代码如下: <<RedisBatchTest>> public class RedisBatchTest { public static

使用BulkLoad从HDFS批量导入数据到HBase

在向Hbase中写入数据时,常见的写入方法有使用HBase API,Mapreduce批量导入数据,使用这些方式带入数据时,一条数据写入到HBase数据库中的大致流程如图. 数据发出后首先写入到雨鞋日志WAl中,写入到预写日志中之后,随后写入到内存MemStore中,最后在Flush到Hfile中.这样写数据的方式不会导致数据的丢失,并且道正数据的有序性,但是当遇到大量的数据写入时,写入的速度就难以保证.所以,介绍一种性能更高的写入方式BulkLoad. 使用BulkLoad批量写入数据主要分为