Data Mover在PS系统的开发过程中使用的较少,就算是在有需要的场景下,也大多可以被常用的数据库工具替代。但是Data Mover具有其独有的一些属性,包括特殊的脚本命令,以及极快数据导入导出效率。
打开Data Mover的方式可以直接右键开发工具,打开文件所在位置,该目录下有一个psdmt.exe,注意登录的账号密码为数据库的登录账号密码。
除此之外,还有另外一种方式,在登录AD的情况下,可以直接通过工具栏打开Data Mover(数据移动器)。
Data Mover界面比较简洁,PeopleSoft Data Mover 界面由两个水平窗格组成:输入窗格和输出窗格,输出窗格不支持像数据库工具的查询结果展示。即可以对数据进行处理,但是看不到表里面数据。这点对于习惯了plsql工具的开发来说,确实有点不习惯。
关于Data Mover的使用方法,一些限制和要求,可以参考官方文档,链接会放在文章最后。
下面举两个常用的场景例子。
第一个就是数据的迁移,通过Data Mover可以在短时间将数据从一个库迁移到另一个库。命令如下
SET OUTPUT就是设置导出文件的目录,针对导出文件的命令来说,需要设定好导出目录和文件(目录是本地的目录)。SET LOG 就是设置日历文件的导出目录和文件。之后就是针对于导出文件的命令EXPORT,后面可以直接跟AD开发的表也可以跟数据库表名。如果表名后面没有跟条件语句,及全表导出。如下例第三行就是导出表PS_C_DATA_HEAD,第四行就是导出表C_DATA_FIELD的数据。后面就是导出JOB表,生效时间大于1994-01-01,时薪大于100的数据。详细的关于条件怎么书写可以参考官方文档。
SET OUTPUT c:\temp\cdatefile.DAT;
SET LOG c:\temp\cdatefile.LOG;
EXPORT PS_C_DATA_HEAD ;
EXPORT C_DATA_FIELD ;
EXPORT JOB WHERE
EFFDT > :1 AND
HOURLY_RT > :2
AND GRADE = 'ADV';DATE,1994-01-01,NUMBER,100;
关于数据导入即需要登录到导入数据库的Data Mover,使用如下命令。SET INPUT设置导入数据的文件所在地和文件名。IMPORT即导入数据的表名。导入相比较于导出简单许多,但是要注意的是导入数据也是会存在PLSQL导入存在的一些问题。例如关键字重复之类的。相对的有一个命令可以避免该类问题,就是REPLACE_DATA,删除现有表中的数据并从导出文件中插入相应的数据。
SET INPUT c:\temp\cdatefile.DAT;
SET LOG c:\temp\cdatefile.LOG;
IMPORT PS_C_DATA_HEAD ;
IMPORT PS_C_DATA_FIELD ;
第二个场景就是修改PS账号的密码,PS的密码存储采用了加盐MD5加密,所有即使你拥有数据库的账号密码,也无法直接通过数据库更改。但是Data Mover可以,通过如下命令可以将PS的密码更改为PS。
update PSOPRDEFN set OPERPSWD = 'PS', ENCRYPTED = 0 where OPRID = 'PS';
encrypt_password PS;
官方文档参考链接:https://docs.oracle.com/cd/F44200_01/pt859pbr2/eng/pt/tlcm/concept_UnderstandingPeopleSoftDataMover-077b0a.html?pli=ul_d100e194_tlcm