create or replace procedure store(primarytable varchar2, table4store varchar2) as --接受两个参数,第一个为要备份的表名,第二个是用户指定的该备份的名字,用来还原时使用 v_sql varchar2(200); BEGIN v_sql := 'create table ' || table4store ||'(...)创建该表(不好意思,不知道怎么直接在这边读到那个表的定义,只好这样弄了'; execute immediate v_sql; v_sql := 'insert into '|| table4store || 'select * from '|| primarytable; execute immediate v_sql; END store;
create or replace procedure restore(source varchar2, dest varchar2) as --接受两个参数,第一个为还原的数据源(就是前面备份到的那个表),第二个为还原的目的表 v_sql varchar2(200); BEGIN v_sql := 'delete from '|| dest; execute immediate v_sql; v_sql := 'insert into '|| dest ||'select * from '|| source; execute immediate v_sql; END restore;
可以通过存储过程执行动态SQL实现。
然后将原来表中的数据全部插入新表。
up!!!!!!!!!!!!!!
但是我不知道该怎么写
v_sql varchar2(200);
BEGIN
v_sql := 'create table ' || table4store ||'(...)创建该表(不好意思,不知道怎么直接在这边读到那个表的定义,只好这样弄了';
execute immediate v_sql;
v_sql := 'insert into '|| table4store || 'select * from '|| primarytable;
execute immediate v_sql;
END store;
v_sql varchar2(200);
BEGIN
v_sql := 'delete from '|| dest;
execute immediate v_sql;
v_sql := 'insert into '|| dest ||'select * from '|| source;
execute immediate v_sql;
END restore;
另外 感谢 acmly()的信息!
不如用imp和exp了,写个批处理在服务器端,保存时就exp,每次修改名字保证输出的文件命名唯一性,在需要还原的时候就重新imp
细节可以参考文档Oracle Database Utilities前两章
user007这个用户的密码是:user007
服务器的名字:dbserver
exp user007/user007@dbserver file=D:\oraclebackup\crystal.dmp full=yExport: Release 9.2.0.1.0 - Production on 星期四 8月 18 10:35:51 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.EXP-00056: 遇到 ORACLE 错误 12514
ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME
EXP-00000: 导出终止失败请问 这是怎么回事
有没有执行过catexp.sql?
我好像没有执行过,
然后@文件路径
就可以了
ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME
EXP-00000: 导出终止失败
====================================================sqlplus能登陆吗?如果不能请检查你的tnsname.ora是否正确.
=========================================================================没有过客户端你怎么连接数据库?
通过jdbc?
user007这个用户的密码是:user007
服务器上的数据库ID名字:oracdb_dbserver
'备份 exp user007/user007@oracdb_dbserver file=D:\oraclebackup\crystal.dmp full=y
...
备份成功 !!!oracle的一个为:user008
user007这个用户的密码是:user008
服务器上的数据库ID名字:oracdb_dbserver '恢复 imp user008/user008@oracdb_dbserver fromuser=user007 touser=user008 file=D:\oraclebackup\crystal.dmp
...
恢复成功!!!
-------------------------------------------
以上都是在装有客户端的情况下备份和还原的。
接下来'能不能 再给点在没有装客户端的机子上操作
给点下一步的提示!!!
谢谢各位!!!
期待中。
ODBC也好JDBC也好,都只是从你的程序到结构化数据库的API
对Oracle来说,就是可以通过ODBC或JDBC从你的程序到达Oracle客户端
要想到达其服务器端,只能通过Oracle客户端(个人理解)
当然你可以想办法尽量把Oracle客户端尽量的装的小一点,只要你需要的东西还有之前的
“ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME”
明确的说明了,出错是因为SERVICE_NAME(服务名)不正确
或者
(2)客户端怎样运行服务器端程序,比如就运行CMD命令(一定是在服务器上运行因为只有服务器上安装了Oracle),然后 CMD 带参数 -->服务器机子上的一个批处理文件。谢谢各位了,再帮帮小弟吧!!!