我在做一个项目的安装程序,为了简化使用,需要用代码的方式创建一个Oralce的数据库,当然前提是已经安装了ORACLE。
我现在使用的方式是调用sqlplus执行相应的脚本实现。但问题是,我的代码中不好判断脚本的执行结果。哪位高手介绍点方法。

解决方案 »

  1.   

    也可以将你的脚本导出为。dmp后,再导入
      

  2.   

    spool on记录执行日志,然后分析日志内容实现可否?
      

  3.   

    如果你使用的ORACLE10g数据库系统的话,你最好不要在程序中用代码去创建数据库。这不是一个好的方法。如果手工创建数据库的话,有很多功能是不会被自动开启的,给数据库的管理带来麻烦。再说了,你在实施的项目时,对方的DBA也不会让你在程序中用代码去创建数据库的。
      

  4.   


    1,在存储过程里面写动态sql,执行创建oracle数据库,存储过程返回执行结果信息。2,在代码里面调用存储过程,查看执行结果信息。
      

  5.   


    其实你这里的数据库,可以用schema的方式来做,也就是创建user,在这个user下创建你的一些表,视图,index, cluster, sp,trig, function, package等。不需要用emp的方式,相对来说麻烦,而且以后有修改,不直观而且不好维护。毕竟exp/imp可以跨系统,但是跨版本还是有些问题的, 看csdn里提的一些相关的问题就感觉的到,而sql是最直观,而通用的。
      

  6.   

    抱歉未讲清楚需求,我的要求不仅仅是创建表,存储过程。我期望的是从建立一个新的实例开始,都在代码中控制分析日志文件我觉得这个不可行,因为日志文件的格式未知。imp方式不行,因为数据库实例还未建立,再说万一IMP失败我的程序代码中还是不知道。感谢oraclemch提供的方法,虽然我用不上,但是蛮有新意。
      

  7.   

    创建实例,用dbca,最后一步,导出创建Oracle实例的脚步做安装盘的时候,运行这些脚本,自然就创建好了实例,再创建好所有的表结果等脚本。
      

  8.   

    创建实例,用dbca,最后一步,导出创建Oracle实例的脚步 
    -----------
    目前正是用的这个方法,关键之处就是我如何得知每次调用SQLPLUS处理脚本时是成功还是失败。
      

  9.   


    创建实例,应该不是你应用做的,客户有dba,而且你这样创建的实例,即使你可以用shell命令和脚本创建实例,但是你如何去针对客户机器的配置去配置他的内存和其他的性能参数叻,如果不能做到这一点,你的创建实例又有什么意义叻。 
      

  10.   

    我们采用 shell 脚本来创建数据库
    然后读一个配置文件,设置比如内存,实例名,归档模式,目录等
      

  11.   

    将SQLPLUS执行结果保存到一个变量里,分析变量内容获取成功和失败的信息。