我将一个存储过程给弄坏了,我想用import 导入备份文件,恢复它(单独一个存储程,不含其它的数据对象),请问怎么导入?
---------------------------------------------------------------
就一个存储过程还用导么?
spool c:\pro.txt
SELECT TEXT FROM ALL_SOURCE WHERE OWNER='TEMP' AND NAME='P1'; //TEMP为你的用户名,P1为你要导出的过程名
spool off;
运行完成后,脚本在c:\pro.txt中
重新编译就可以了
---------------------------------------------------------------
在没有修改过程源码的情况下:
ALTER PROCEDURE procedure_name COMPILE;
---------------------------------------------------------------
就用文本方式传过去执行一下就可以了。
关于文本的取得方法。你去那个没有错误的机器上取一份不就可以吗?
---------------------------------------------------------------
up,up
---------------------------------------------------------------
gz!
---------------------------------------------------------------
你可以在数据库中创建另一个临时用户,比如tempuser,然后把dmp文件导入到该用户下,再把存储过程取出来,到原来用户下执行,然后再把临时用户删掉。
SQL>CREATE USER tempuser identified by aaa;
C:>imp tempuser/aaa@yxgs filename=d:\ddd.dmp fromuser=yxzb touser=tempuser
然后取出存储过程的文本,到yxzb下执行
然后
drop user tempuser cascade;
---------------------------------------------------------------
你可以在数据库中创建另一个临时用户,比如tempuser,然后把dmp文件导入到该用户下,再把存储过程取出来,到原来用户下执行,然后再把临时用户删掉。
SQL>CREATE USER tempuser identified by aaa;
imp tempuser/aaa@yxgs filename=d:\ddd.dmp fromuser=yxzb touser=tempuser
然后得到脚本执行即可