通过动态sql可以实现.这方面的帖子很多
请搜索"动态sql"

解决方案 »

  1.   

    说了很麻烦的,动态语句也很麻烦,建议不要这么做。
    还有如果你的数据库中有lob,long字段的话,6、导入相应的数据这里会失败的。
    导出导入多简单,也可以在别的地方调用
      

  2.   

    改正一下:
       其实我是需要动态地根据数据库alpha生成一个数据库用户belta,除了名字不同以外其它的全部相同。
       所以其实主要的新建整个这个数据库用户alpha的结构,即所有的表、触发器、存储过程等。至于表中数据只是少量表需要导入。
       我现在就是想问问oracle方面的高手们,该如何写这个存储过程?   应该这是常见的问题啊,高手们给个例子就行啊……
      

  3.   

    btw:系统表数据格式都是简单的varchar、date、number之类,不存在blob等大型数据类型。哪位行行好给个存储过程的example先?
      

  4.   

    这岂不是写一个exp and imp? 有点难度,如果完全一样的话.
      

  5.   

    是啊……终于有人说这个有难度了,55555555555
    可我还算是oracle新手啊,我只对pl/sql熟悉一点,管理方面不懂的说
      

  6.   

    我不是什么高手,所以我说的话不可以当真,只能参考。
    第一、具我所知,用存储过程来复制(或创建)数据库根本不能实现。
    第二、如果你要复制整个数据库,或许可以通过调用可以实现,但只限于复制整个Datebase。
    第三、要实现你的功能或许根本就不需要这样麻烦,ORACLE的导入和导出功能不是可以只导结构,不导数据吗?你可以先复制一个“空库”,再将需要的数据用程序或存储过程导入。
    第四、如果这个“空库”已经存在,也可以使用触发器维护两边的数据统一。
    第五、建议开发一个管理程序,自动生成后台的存储过程或触发器来实现数据的转换。
    第六、.cn
      

  7.   

    1 写一个存储过程,用dbms_sql包来实现创建表空间,用户。
    2 写另外一个存储过程可以实现 imp user/password file="filename"   fromuser="fromuser" touser="touser" rows=y indexes=y ,grants=y 的,
    如 system()函数。 这个存储过程要调用动态连接库。