Oracle中导数据,更新数据,从Execel导数据

需要将某张表的数据导出,将该表右键导出为SQL文件,然后,打开新的数据库,

查看新数据库默认的表空间

select username,default_tablespace from user_users;

 

新建--〉Command Window, 将SQL文件中的表空间信息修改为上面查询到的表空间,如下面的tablespace信息

tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255;
.......

--create index IDX_SUB_RESOURCE on RABC_SUB_RESOURCE (RESOURCE_ID)
  tablespace USERS

 

 

如果SQL语句不多,直接COPY下来,粘贴到Command Window中,如果SQL文件比较大,COPY 到不含中文的目录下,在命令中输入@d:\test.sql

 

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 
Connected as peplat
 
SQL> @C:\Documents and Settings\wu\桌面\test\2014-10-20_SAIRPORT.sql
Error reading file
 
SQL> @d:\test\2014-10-20_SAIRPORT.sql
 
Table created
 
Comment added
 
Table altered
 
1 row inserted
 
1 row inserted
 

 

成功导入数据。

 

需要更新开发库中的表的字段, 批量更新的SQL写法:

 

ORACLE中批量更新表

 

--更新机组信息

 

update tb_pointconfig a set (GENERATORID)=
       (select decode(b."GroupId",1,13,2,14) as JZ 
       from sssj b where a.uploadid=b."Id" and a.factoryid=9 and (b."GroupId"=1 or b."GroupId"=2))

 

 

 

--使用MERGE方法更新数据

 

MERGE INTO tb_realtimedatavalue a
       USING tb_pointconfig b
         ON (a.fid = b.factoryid and a.uploadid=b.uploadid)
         WHEN MATCHED THEN
         UPDATE SET a.pointid = b.id
         WHERE a.fid=13

 

 

需要将Execel 表里面的数据导入到 Oracle 表中, 如果数据量比较大, 可以使用 SQL DEV 里面的 Tools / Odbc Importer  , 打开后, 选择标签  Data From  Odbc  , 选择类型 Execel Files  填写用户名密码。



 

然后选择 Data to Oracle 标签, 选择 Oracle 的用户名和表名, 选择字段和字段类型

 



 

最后, 点击  Import  导入数据.

 

导 CSV 文本格式选择Text Importor, 点左上角的图标导入文件,设置格式类似,遇到了文本转换为日期的问题,Text 日期格式为 2014-10-24 10:20:20.000 带毫秒的,to_date 函数无法转化,使用 to_timestamp('2011-12-15 10:40:10.345', 'yyyy-MM-dd HH24:MI:ss.ff')

 

日期解决http://blog.csdn.net/h249059945/article/details/8551820

 

有时发现导入CSV文件内容是乱码,需要导CSV 文件时设置为 GBK 编码:

NAVICAT 数据库管理工具为例:



 

 

 

 

 update 方式更新数据,ORACLE和MSSQLSERVER支持的关联语句不一样。

 

MSSQL:

update s SET s.ZPSG = Isnull(i.PSG, 0)
from S***s s, S***_In*** i where i.A*****om=s.A*****om and s.F*****te = '2015-11-05' 

 

 ORACLE:

 

UPDATE S***S S
   SET S.ZPSG =
       (SELECT ZPSG FROM S***IMPORT_ZPSG I WHERE S.ID = I.ID)

 

 

 

参考;   http://hi.baidu.com/cuihenrychl/item/3c720c30f7f84398c3cf29e2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值