pb中oracle字符集有关问题

pb中oracle字符集问题
在c/s下,请问大家有没有办法动态设置oracle的字符集语句或者方法,因为工作需要可能要在两个不同的字符集之间来回的切换,每次都去修改注册表感觉很麻烦并且感觉这种方法也很笨拙,例如在.net中可以在主程序中写:
Environment.SetEnvironmentVariable("NLS_LANG", "SIMPLIFIED CHINESE_CHINA.ZHS16GBK", EnvironmentVariableTarget.Process);
不知道在PB中有没有这样的语句,只在该进程中修改了字符集而不影响其他,请大虾们多多指教~~~

------解决方案--------------------
另外,我还有两点想说的是:

1. 因为字符的转换实际上是发生在 oracle 的线程中,也就是 oracle 的那些底层 dll 来完成的。我们在环境变量里设置字符集,其实是依赖于这些 dll 在读取字符集设定时的顺序,也就是先看环境变量,再看注册表。说实话,我并不知道 oracle 是不是这样干的,也没测试过。只是看网上大家的做法,似乎应该是这样不错。

2. 从 oracle 字符集这个东西本身的角度说,我们是不应该这么干的。oracle 其实是希望我们给出客户端的真实字符集,而不是简单地把它设置为与服务器一致。于是问题来了,为什么 oracle 不强制使用操作系统的字符集呢?根据我的实际经验,还是因为 oracle 在字符集转换时做得不够到位!gbk 的编码在 utf-8 里不应该没有吧,可‘弢’和‘→’两头不设成一致的话,肯定变成问号!所以没办法,这个转换失真的问题只好通过客户端使用统一的操作系统去解决了。我觉得 oracle 公司应该及早解决这个问题,有哪个程序员喜欢做这种字符集颠来倒去的事情,何苦呢?