我写了个程序,是一个Windows程序,里面连接了Oracle数据库。程序里什么也没有做,只是建立一个连接,然后关闭。在Oracle的日志里,发现下面的语句:
SELECT PARAMETER, VALUE FROM SYS.NLS_DATABASE_PARAMETERS WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET'),MODULE名称是我的程序名称。下面是从日志里弄出的东西:781 19166 ENGINE SYSTEM 55 ENGINE OAMPSYS.exe WEBSERVICE SELECT PARAMETER, VALUE FROM SYS.NLS_DATABASE_PARAMETERS WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET') 594 INACTIVE INACTIVE 2009-5-22 16:51 594哪位高人能告诉我,为什么Oracle会执行这条语句?谢谢啦!

解决方案 »

  1.   

    这句是查询字符集的
    会不会是在启动服务器时在配置文件里有人加上用来测试oracle连接状态的
      

  2.   

    那是不是所有的连接都要执行这个语句啊?但是我看日志里面,MODULE只有我的程序的名字,而其它连接数据库的程序,日志里都找不到。
      

  3.   

    请问,楼主所说的日志是udump目录下的trc文件吗?
      

  4.   

    用的是这个:select* from v$sql
      

  5.   

    怀疑与应用程序有关,因为我这边试了试用sqlplus和toad工具连接oracle都没有这个sql,可能是应用程序为了根据oracle字符集而对数据库采取相应的处理而自动执行的sql.
      

  6.   

    不清楚,up_______________________________
    DBA请进群QQ群:88039805
      

  7.   

    v$sql里不仅仅是你执行过的sql,有是有nested sql执行的,