浏览器登录
Oracle11g 不能直接登录图形界面了,所以要进去进行数据库、表的常规操作显得很麻烦。
可以在 ie 浏览器上输入 https://localhost:1158/em 登录,账户为 SYS( 注意大写 ) ,密码为安装 oracle 时你自己设置的密码。不过想登进去,要先在电脑的服务(控制面板 — 管理工具 — 服务)中启动: OracleDBConsole***,(*** 为你的数据库名 ) 。
如果系统提示错误,如下图:
首先分析原因: OracleDBConsole 服务用于网页登录数据库,从 Oracle10g 后开始出现。但发现应用时很脆弱,安装 Oracle10g 或者 11g 后网址发生变动时,这个服务就启动不起来了,或者计算机名字发生变动等也可能启动不来。
解决:
1 开始 -> 运行 -> 输入 cmd
2 输入 emctl start dbconsole ,提示 " 找不到环境变量 ORCALE_SID" ,请运行 SET ORCALE_SID=*** // 你的数据库名称(注意要大写)
3 如果计算机名称发生变动,再次执行 emctl start dbconsole ,提示 " 无法找到 D:/oracle/product/10.2.0/db_1/***_SKYORCL" ,复制该目录下 的 "localhost_skyorcl" 文件夹放在同一目录下 , 且把名称改成 "***_SKYORCL" 。 // *** 为机器名
4 如果网址发生变动,再次执行 emctl start dbconsole ,提示 " 无法找到 ***db_/oc4j/j2ee/OC4J_DBConsole_*** ( ip ) _*** (数据库名称) " ,复制该目录下 "OC4J_DBConsole_***_dragon" 文件夹放在同一目录下,且把名称改成 OC4J_DBConsole_*** ( ip ) _dragon" 。
5 :再次执行 emctl start dbconsole , ok 。
如果问题还解决不了,那就直接建立一个文本文档,输入
@echo off
echo 正在启动 ORACle 服务 ......
sc start OracleServiceWQMS
sc start OracleOraDb11g_home1TNSListener
sc start OracleOraDb11g_home1ConfigurationManager
sc start OracleDBConsolewqms
echo 启动完成!
然后把后缀改为 .bat, 运行即可。注: wqms 是我的数据库名
PL/SQL 登录
当然,如果是个人用 Oracle11g 的话,登录这个图形界面不仅复杂,并且每次重启电脑都要启动 OracleDBConsole*** (数据库名),而且进入了这个浏览器图形界面,感觉好像不能操作数据库,不能进行一般的表操作,我建议你们用 PL/SQL 。
PL/SQl 导入 excel 文档
在 plsql developer 的 sql window 里输入 select * from test for update ,其中 test 是要导入的 oracle 数据表名称;
执行查询(通过点击按钮或者快捷键 F8 可以实现);
点击查询结果上面的锁状按钮,使得查询到的内容处于编辑状态。
从 excel 数据表中 copy ( ctrl + C )要导入 oracle 中的数据,如果是单列数据导入,可以先按 plsql developer 中查询结果上面的 “ 添加(+) ” 按钮,使得数据表处于添加数据状态,然后将鼠标在 plsql developer 的列名称上单击,最后使用快捷键 ctrl + v 完成数据导入操作,并单击 plsql developer 中的 “ 提交(对号) ” 按钮提交所做的修改。
如果是同时导入所有列,首先 excel 表的第一列设置为空值,选择 copy 空值列 + 所有数据,然后点 PL/SQL developer 中,增加(+)并点击编辑那一行最前面的星号 (*) 使得整行数据都处于被选择状态,最后 paste 即可将数据导入。
如果分列导入数据,则需要逐列完成,首先选择 copy 要导入的数据,然后然后点增加(+)并点击编辑那一列的名称,使得整列数据都处于被选择状态,最后 paste 即可将数据导入。
使用 PLSQL developer 执行数据的导入和导出操作主要存在的问题是在大数据量情况下对中文数据可能出错,估计将接收数据表的类型定义为 nvarchar2 的类型会比较好一点。另外,就是这种方法需要人工更多的参与,不能达到自动导入的效果。
用命令行向 oracle11g 导入含空间数据的 dmp
在这里介绍一种命令行备份和导入数据的方法。
比如说用户名为 sde ,密码为 1234 ,数据库名为 wqms 。
把数据库 wqms 里,用户 sde 下的所有数据(包括表、索引、存储过程、触发器等)备份到某个文件夹(这里设为 e:/es/ ),命令应该这样写:
Exp sde/1234@wqms file=e:/es/bf.dmp log=dc.log
Bf.dmp 为保存后的文件, dc.log 为日志文件,也即命令行黑屏上执行时显示而没来得及看的所有信息。
而导入时,则用下面的命令
Imp sde/1234@wqms fromuser=sde file=e:/es/bf.dmp log=dr.log touser=sde
如果 bf.dmp 里面含有空间数据,要想把空间数据正确导入,在导入之前,要把 sde 用户中的表全部删掉,你可以用下面的命令:
sqlplus sde/1234@wqms
spool on
spool c:/dd.sql
select 'drop '||object_type||' '||object_name||';' from user_objects order by object_type;
spool off
@c:/dd.sql;
Exit
把里面的 sde/1234@wqms 的这个改成自己相对应的用户名、密码和数据库名后,直接拷贝到命令行里执行就行。
再次用导入命令导入后,基本上能解决问题。如果还是不能导进。则可在导入命令的加一句
Ignore =y ,意思是如果导入前有相同表的,忽略不计。整体如下:
Imp sde/1234@wqms fromuser=sde file=e:/es/bf.dmp log=dr.log touser=sde ignore=y
这样就可以成功导入了。
现在用 ArcMap 打开,却提示 gsrvr.exe 内存错误,然后又弹出 NetWork I/O error ,什么原因呢?
你只要重新配置一个 ArcSDE 即可。在开始 — 程序 —ArcGis—ArcSDE—ArcSDE for Oracle11g Post Installation 。
arcsde for oracle 安装全过程
接着上面来啊。
从 “ 开始 ”-- 〉 “ 程序 ”-- 〉 “ArcGIS”-- 〉 “ArcSDE”-- 〉 “ArcSDE for oracle11g Post Installation” ,进入安装界面。
1. 选择完全安装,即 “Complete” ,点击 “ 下一步 ” 。
2. 要求以 Oracle 用户 sys 的身份登陆 Oracle 数据库。在 Sys user password 中输入用户 sys 的密码(安装 Oracle 时输入的);在 Net service name 中输入 Oracle 服务的名字,可以以如下方式查看 Oracle 服务的名字: “ 控制面板 ”-->“ 管理工具 ”-- 〉 “ 服务 ” ,找到 “OracleServiceSomename2” 字样的服务(其中, Somename2 只是一个替代字符串),右键点击 “ 属性 ” ,在弹出的对话框中,看到 “ 可执行文件的路径 ” 下面的字符串,此字符串中 “.EXE ” 后面的部分即是 Oracle 服务的名字。点击 “ 下一步 ” 。
3. 进入 “ArcSDE configuration files” ,配置 ArcSDE 文件,选择默认,点击下一步即可。
4. 进入 “ArcSDE configuration files continued” ,继续配置 ArcSDE 文件,选择默认,点击下一步即可。
5. 创建方案 SDE 。此时, SDE 用户的名字已经固定,为 “sde” ;程序在 (4) 中已经获得用户 “sde” 的密码,此处也以星号形式给出;程序在( 3 )中已经获得 Oracle 服务的名称,此处也显示给出。此处全部默认即可,点击 “ 下一步 ” 创建 ArcSDE 服务, “Oracle_SID” 必须填,而且要填正确,否则 ArcSDE 服务即使创建了也不能启动。可以用如下方法查看系统已经安装的 Oracle 的 SID :在 Oracle 安装路径下的 “/admin/sde/profile” 文件夹下,有一个 “init.ora.*************” 字样的文件(比如,在我的机器上该文件为 D:/oracle/admin/SDE/pfile/ init.ora.6162005101919 ),用文本文件方式打开,查找字符串 “instance_name” ,可以看到 “instance_name=somename3” 字样的值,这个 somename3 就是 Oracle_SID 。如在这个文档里找不到,则可到注册表下 HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb11g_home1 ,这里便有一个名称为 ORACLE_SID 的东东。
6. 如果原来有 ArcSDE 服务,那么此时会提示已经存在服务,是否覆盖;或者提示出错。原因:第 1 步即 “ 打开注册表,删除 ArcSde Service 服务 ” 仅仅把控制面板服务列表中的服务删掉,而真正的服务(在 HKEY_LOCAL_MACHINE/SOFTWARE/ESRI/ArcInfo/ ArcSDE/ArcSDE for oracle 下)还是没删掉,所以会提示是否覆盖。如果第 1 步没有执行,即服务列表中的 ArcSDE 服务没有删掉,就会提示出错。
7. 在以上执行步骤中,由于没有删掉 HKEY_LOCAL_MACHINE/SOFTWARE/ESRI/ArcInfo/ArcSDE/8.0/ArcSDE for oracle 下的 ArcSDE 的真正服务,所以提示是否覆盖。点击 “ 是 ” ,一会儿后弹出对话框,提示耐心等待,询问是否启动新创建的 ArcSDE 服务,选择 “ 是 ” ,一会儿后提示服务成功启动。
8. 提示安装完成。此时可以到服务列表( “ 控制面板 ”-- 〉 “ 管理工具 ”-- 〉 “ 服务 ” )中,找到 “ArcSDE Service ( somename4 ) ” (somename4 是 (9) 中出现的 ArcSDE 服务的名字,默认为 esri_sde), 可以看到确实正常启动了。
9. 现在可以打开 ArcCatalog 了, Database Connection à Add Spatial Database Connection ,
Server: 你的计算机名或者 127.0.0.1 ; Service: 在上面安装 SDE 时的,默认为 esri_sde ; DataBase :你的数据库名; UserName: *** ; Password:*** 。