之前在项目中导入基础数据时,因为代码写的不够完善,导致一些列的数据没有正确导入,在系统中重新导入所有基础数据又太麻烦,所以想到把没导入数据库的列单独放入EXCEL中,通过PL\SQL导入到数据库中,并通过一个表的列去更新另一个表对应的列。
一、在oracle数据库中建立一个临时表,我的叫CELL_ANGLE,其表结构如图:
二、准备导入的数据,excel版本为2007,文件名为angle.xls,存放位置在D:\PLSQL\
第一行与数据库的列名一一对应,以下为要导入的数据,导入数据要符合表的完整性定义
三、使用PL\SQL的工具,Tools下面的ODBC Importer工具,在ODBC Importer的用户/系统 DSN中选择Excel Files,在用户名中输入要导入表所属的用户名,密码中输入登录密码,本例中数据库用户名为cmms,之后点击连接按钮。
四、点击连接按钮后,会弹出“选择工作薄”对话框,通过“驱动器”选择文件存放的位置,本例angle.xls放在D:\PLSQL\,在“文件类型”中选择Excel文件(*.xls),在“文件类型”上方的空表框中选择要导入的文件,点击该文件后,在数据库名中会显示要导入的文件名,本例中为angle.xls,选择完成后点击“确定”按钮。
五、点击确定按钮后,在接下来弹出的对话框“表/查询”中选择“导入表”,本例中数据放在Excel表的Sheet1$中,点击“'D:\PLSQL9\angle.xls’.'Sheet1$'”,在结果预览中会显示要导入的数据
六、点击“到oracle的数据”设置oracle相关的设置
在“所有者”中选择angle表的所有者,本例中所有者是cmms;在“表”中选择angle表,在字段中选择excel表和angle表中对应的列名,在“字段类型”中选择对应列的数据类型
七、选择完成后,点击“导入”按钮,系统会显示导入的数据数量和时间;至此,数据就导入完成,那如何用这些数据去更新其他表中对应列的数据呢?
用一个表的列更新另一个表对应记录的列:update base_station t set t.high_way=(select a.high_way from angle a where t.bsc=a.bsc and t.btsid=a.btsid and t.city_id=a.city_id ) ;可总是不成功,看了看提示:“单行子
查询返回多于一个行”。原来是两个表的记录并不是一对一的关系,一个表中的记录数大于另一个表,即不关联的记录,所以才会失败。按照提示,查询条件中加上“
rownum < 2 ”,成功。
oracle
如何将同一
表中
的某
一列
更新
到另
一列
=======================================
create table KKK_TEST
A VARCHAR2(20),
B VARCHAR2(20),
ID NUMBER not null
-------------------------------
第一种方法:
update tablea set column_name1=(select name2 from tableb where tableb.name3=tablea.name1)
只
修改
一个
update tablea set column_name1=(select name2 from tableb where tableb.name3='a') where tablea.na...
为此,您可以使用联接概念。让我们首先创建
一个
表
-my
sql
>createtableDemoTable1->(->Idint,->Namevarchar(10)->);使用插入命令在
表中
插入一些
记录
-my
sql
>insertintoDemoTable1values(100,'Bob');使用select语句显示
表中
的所有
记录
-my
sql
&...
这种查询称为相关子查询.根据您的要求,查询如下….update students sset s.department = (select e.qualificationfrom employee ewhere s.uniquename = e.uniquenameand s.Homecountry = e.Homecountry);根据您的回复
更新
此帖子.再次,继续,始终发布创建
表
并插入语句(和预...
1、PL/
SQL
修改
表
数据
,找到要
修改
数据
的
表
,右击—编辑
数据
;
2、点击小锁图标,可以增加或删除,也可以编辑某行
数据
,然后点击小绿色对号;
注意:点击对号之后并没有真正保存,还需要提交事务,这样才算是真正
修改
了。点击对号之后,还要点击提交事务按钮。
在做
Oracle
相关开发的时候,经常遇到类似的问题,利用
表
a的
记录
更新
表
b的
对应
的
记录
,这时候需要注意,如果
SQL
写的不当,会导致,
表
a中key不存在于
表
b中的
记录
除key之外的fields
更新
成NULL。
DROP ...
where b.device_code =a.device_code)
格式 update
表
A set (
表
A字段) =(select
表
B字段(注和
表
A
对应
字段)from
表
B
准备阶段1.建
表
语句:create table table1(idd varchar2(10) ,val varchar2(20));create table table2(idd varchar2(10),val varchar2(20));2.插入
数据
:insert into table1 values ('01','1111');insert into table1 values ('02'...