大家都知道配置启动oracle是件比较麻烦的事情 。个人电脑比较好说 ,设置一次就OK ,但是相对于大机房而言 。对学生来说就是一件头疼的事情 。所以本人就比较头疼 ,前一段时间自己用易语言做了一个Oracle10g的启动器 ,登录sqlplus比较简单 ,在DOS下输入 sqlplus sys/sy as sysdba 一句话就可以登录了 ,但是唯一遇到一个头疼的问题就是需要手动的去输入alter user scott identified by tiger account unlock; 来激活scott账户 ,这个比较麻烦 ,我用了按键精灵的自动键盘输入 ,但是还是觉得比较麻烦 ,所以想重新做个Oracle10g的启动器 。我今天想到了一个点子 ,但是不知道可不可行 ,本人觉得既然可以获取得CMD的管道来执行程序的命令 ,我们是不是也可以获取到sqlplus的管道呢 ? 对于这个问题我比较不知所措 。毕竟本人对于管道这方面的技术从来没研究过 ,所以上来请各位高手指点一二 。
我的逻辑就是在DOS下执行 sqlplus sys/sy as sysdba 登录sqlplus后 ,由DOS环境进入SQL环境 ,获取到SQL的管道 ,然后将 alter user scott identified by tiger account unlock; 这条命令添加并输入到SQL的管道中让它执行并返回结果 。可是由于本人技术不佳 ,确实不知道应该如何去获取管道 .....我也想过启动进入sqlplus后去windows的内存堆中寻找相对应的地址 ,然后添加修改 ,但还是由于技术不佳等原因 ,这个想法没能实现 , 所以还请各位大侠指点一二 。

解决方案 »

  1.   

    1:写个BAT文件,
    2:写个SQL文件
    BAT文件调用SQL文件执行,一键启动ORACLE任何SQL操作都可以写在SQL文件里执行参考http://heisetoufa.javaeye.com/blog/287301
      

  2.   

    不可行的 ,毕竟由DOS环境进入了sqlplus的SQL环境 ,读取文件sql文件 ,在DOS下可以 ,但是在SQL环境下就不可以读取了 。我也想过这样 , sys/sy as sysdba & alter user scott identified by tiger account unlock; 但是行不通 ,因为从DOS进入sqlplus需要登录 ,需要钥匙 ,打不开 ,SQL环境就进不去 ,所以激活scott账户也不能同步激活。不知道还有没有别的办法 。
      

  3.   

    怎么不行,我汗,肯定可以啊,以SYS用户进入后,解锁SCOTT用户,然后再以SCOTT用户进入
      

  4.   

    就是因为这样很麻烦呐 ,所以我才想用一键的方式快速解锁并登录scott撒 。BAT我不会写 。sql会写。
      

  5.   

    不行的 。我看只能用管道技术才能解决问题 。。bat执行是在DOS环境下 ! 而不是sqlplus的SQL环境下 ,登录了sqlplus后 ,那又怎么在SQL环境下读取解锁scott账户的代码呢 ? 一点也不考虑环境问题 。sql环境你要怎么读取 ? 通常我们在程序里会写到 "cmd /c sys/sy as sysdba" ,但是这仅限于DOS环境 ! SQL环境要怎么写呢 ?难不成些成 "sqlplus /c alter user scott identified by tiger account unlock;"来解锁 ? 根本是不合理的逻辑 。
      

  6.   

    先写个test.sql,内容就是一行,    alter user scott identified by tiger account unlock;
    再写个test.bat,内容也就一行,    sqlplus sys/sy as sysdba   @test.sql放在同一个目录下,执行bat。你试试