==========================================================
导出oracle数据库及数据
===============
问题:
使用Oracle SQL Developer里面的Tools->Export DDL、和在SQL worksheet中输入exp命令,都报错。
前者报表或视图不存在,后者报无效的SQL语句。
解决:
不用Oracle SQL Developer,直接转到dos的SQL命令行导出,报错:
sp2-0734 未知的命令开头 "exp……
下面找到了正解:http://www.bhcode.net/article/20100414/8076.html
http://blog.sina.com.cn/s/blog_6d59e57d0100q0qv.html 都说了要在DOS界面下使用,居然没有注意。
汗,这么小问题搞了好久,一直以为是sql不对
结论:
要在dos命令行,即直接打开cmd窗口使用exp命令,不能在SQL>提示符下使用exp命令
===========================================================
导远程服务器上的oracle数据库
=================
参考:http://sucre.blog.51cto.com/1084905/380152
问题:tnsnames.ora在哪?
解决:不同客户端tnsnames.ora的路径不同,不能在sqlplus里获得。
我的11g tnsnames.ora路径为$oracle_home\product\11.1.0\db_1\NETWORK\ADMIN\
问题:改好后提示只读不让保存
解决:另存到桌面,删除原文件,再粘贴回去。
问题:输入命令exp username/[email protected] file=c:\本地存放数据库备份后的路径
报错:ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME
解决:经过自己对比发现,我在复制设置代码的时候,图省事,复制了原有的配置
ORCL = (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = XiaoYan-PC)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
) 实际上正确的设置,还有个ADDRESS_LIST,之前自己没注意。
问题:报错 必须说明 \'SET_NO_OUTLINES\' 组建
解答:http://blog.csdn.net/xw13106209/article/details/6609638
不能直接在客户端(安装有oracle 11g)上使用exp命令向服务器端(oracle 9i)上的数据库发出请求导出数据到客户端机器上。
之前不能用Oracle SQL Developer里面的Tools->Export DDL导出数据库,也是因为版本问题。
解决:还没解决……
============最终情况===========================================
同事在自己的服务器上导出了数据库,没用我的客户端。
经验太少了……早知道这样导不行的话,可以少花很多时间呢……以后不用版本间交互要注意注意啦……
=========== 其他小知识===================================
查询当前数据库名 select name from v$database;
查看数据库版本 select * from v$version;
参考:http://z-piaoyi.iteye.com/blog/989205
oracle 入门命令:http://z-piaoyi.iteye.com/blog/989205
