« SQLULDR2会话级设置 »
Tools » http://www.anysql.net/tools/sqluldr2-alter-session.html 2009-06-03某国外网友不满于SQLULDR2中的默认日期格式, 还想控制数字类型的千位分隔符, 这些都需要在会话级更改一些设置才能工作, 一开始设计SQLULDR2时没有考虑到这一点, 没有提供灵活的会话级设置功能, 考虑到提议不错, 就加了一个命令行选项(“ALTER”)实现了, 可以将多个ALTER SESSION的语句用逗号分隔, 传给SQLULDR2程序. 可以写入到参数据文件(testpar.txt).
user=webchart/webchart@localhost:1521/testdb
query=select sysdate from dual
alter=alter session set nls_date_format=’yyyy-mon-dd’;
alter session set nls_date_format=’yyyy-mm-dd’;
运行如下命令, 进行测试.
sqluldr2 parfile=testpar.txt
看一下生成的文件中, 日期的格式, 已不是默认格式(“YYYY-MM-DD HH24:MI:SS”)了. 需要注意的是, 生成的控制文件中, 则还是默认的格式, 没有根据会话级设置而相应改变.
D:\OracleClient>type uldrdata.txt
2009-06-03
不知道有多少人真的要用到这个功能, 关于性能的一些调整项已经做成专门的命令行选项了.


考虑到安全, 对ALTER选项做了改进, 对于所有的语句都会在面前加上ALTER SESSION执行, 如指定:
alter=set nls_date_format=’yyyy-mon-dd’;
真实执行时, 会执行:
alter session set nls_date_format=’yyyy-mon-dd’;
否则可以在这儿执行alter user命令改口令了, 这应当是被禁止的.