前言:在这里插入代码片
2018/10/22 工会问题总结
和孙大佬在信息中心苦战了一天,终于把所有的问题都解决了,孙大佬真的很强。思路开阔,逻辑清楚,操作精准,分析能力极强
-1 本地数据库同步的问题
最大的遗憾就是,没有学会用pi/sql 进行数据库同步 没有学会exp imp 等操作
0 数据的获取
1.安装oracle client 12 解决乱码问题
source /usr/local/oracle/instantclient_12_2/.bash_profile
sqlplus ugonghui/ugonghui@//10.113.1.50:1521/orcl;
sqlplus gonghui/gonghui@//10.113.1.50:1521/orcl;
2.学习使用脚本用sql plus 将数据导入到excel表中
参考文献:
连接运算符是双竖线“||” - 拿着菜刀的诗人 - CSDN博客: https://blog.csdn.net/programpoet/article/details/4962916
使用SQL*PLUS,构建完美excel或html输出 - Oracle Life - 云和恩墨,成就所托!: http://www.eygle.com/archives/2005/04/eoasqlplusieaae.html
Oracle sqlplus查询结果输出到文本文件或excel文件中的方法 - Oracle数据库与大数据解决方案-炼数成金-Dataguru专业数据分析社区: http://f.dataguru.cn/thread-847893-1-1.html
[root@localhost ~]# more main.sql
set linesize 200
set term off verify off feedback off pagesize 999
set markup html on entmap ON spool on preformat off
spool tables.xls
@get_tables.sql
spool off
exit
[root@localhost ~]# more get_tables.sql
select * from bi_manu;
[root@localhost ~]#
SQL> @/root/main.sql
SQL> set linesize 200
SQL> set term off verify off feedback off pagesize 999
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
1.系统的导入
生成了一张sys_department.sql 直接导入到官网中去了
分析的时候可以使用:oracle 层级关系、三级查询等方法
SELECT c.id id1,c.name name1,t.id1 id2,t.name1 name2,t.id2 id3,t.name2 name3 FROM
SYS_P_DEPARTMENT c
LEFT JOIN
(
SELECT
A.id id1,A."NAME" name1,a.PARENT_ID id2,b."NAME" name2
FROM
"SYS_P_DEPARTMENT" A
LEFT JOIN "SYS_P_DEPARTMENT" B ON A .PARENT_ID = B.id
)t
on c.parent_id=t.id1
2.稿件问题的解决
先导入了sys_department表
生成新旧表的之间的对应关系
批量修改dept_id
UPDATE bi_manu
SET dept_id = CASE dept_id
WHEN 2 THEN 310
WHEN 3 THEN 311
WHEN 4 THEN 312
WHEN 5 THEN 313
WHEN 6 THEN 314
WHEN 7 THEN 315
WHEN 8 THEN 316
WHEN 9 THEN 317
WHEN 10 THEN 320
WHEN 11 THEN 318
WHEN 12 THEN 319
WHEN 13 THEN 356
WHEN 14 THEN 321
WHEN 15 THEN 322
WHEN 16 THEN 323
WHEN 17 THEN 324
WHEN 18 THEN 325
WHEN 19 THEN 326
WHEN 20 THEN 327
WHEN 21 THEN 328
WHEN 22 THEN 330
WHEN 23 THEN 331
WHEN 24 THEN 329
WHEN 25 THEN 332
WHEN 26 THEN 333
WHEN 27 THEN 26
WHEN 28 THEN 336
WHEN 29 THEN 335
WHEN 30 THEN 337
WHEN 31 THEN 338
WHEN 32 THEN 319
WHEN 33 THEN 343
WHEN 34 THEN 340
WHEN 35 THEN 341
WHEN 36 THEN 342
WHEN 37 THEN 306
WHEN 38 THEN 279
WHEN 39 THEN 296
WHEN 40 THEN 344
WHEN 41 THEN 298
WHEN 42 THEN 301
WHEN 43 THEN 303
WHEN 44 THEN 304
WHEN 45 THEN 305
WHEN 46 THEN 309
WHEN 47 THEN 308
WHEN 48 THEN 307
END
导入sys_department_top表并修改代码
3.sys_p_user 的导入
先修改dept_id 使用的方法和稿件的一样
生成sys_p_department_orgin表,主要是id的值从10000编号,并用sql导入到官网中国(用excel直接拖就行了)
补齐工号 使用的是八位对齐,前面用0补全
UPDATE SYS_P_USER_ORIGIN set JGH=lpad(JGH,8,'0') where LENGTH(JGH)<9
填充dept_id 根据sys_p_department_orgin提供的信息,对数据库里面dept id 为空的值进行完善
UPDATE sys_p_user A
SET A .dept_id = (
SELECT
DWID
FROM
sys_p_user_origin T
WHERE
A . ACCOUNT = T .JGH
)
WHERE
A .dept_id IS NULL;
修改Email限制大小 图形化界面就可以改
增量更新 (将一张表插入到另一张表)
参考:https://bbs.csdn.net/topics/230086944
insert into sys_p_user(ID,ACCOUNT,NAME,SEX,TELEPHONE,TYPE_ID,PASSWORD,STATUS_ID,EMAIL,DEPT_ID)
select ID,JGH,XM,XBM,DH,'0','202cb962ac59075b964b07152d234b70','1',DZYX,DWID from SYS_P_USER_ORIGIN
where JGH not in (select ACCOUNT FROM SYS_P_USER);
-
4.BI_TRADE_INFO 的导入
先修改dept_id 使用的方法和稿件的一样
生成orgin表,并删掉里面 护照为A的值 ,的身份证件号信息
update bi_trade_info set ZJLXM=NULL, SFZH=NULL,ZJLX=NULL WHERE ZLXLM ='‘A’
补齐工号 对sys_p_department_orgin 使用八位对齐,前面用0补全
填充dept_id 根据sys_p_department_orgin提供的信息,对数据库里面dept id 为空的值进行完善
修改Email限制大小
name 大小 图形化界面就可以改
nation大小 图形化界面就可以改
增量更新