Oracle11g、PL/SQL、ArcSDE笔记

来源:互联网 发布:淘宝联盟卖家平台 编辑:程序博客网 时间:2024/04/30 13:43

浏览器登录

Oracle11g不能直接登录图形界面了,所以要进去进行数据库、表的常规操作显得很麻烦。

可以在ie浏览器上输入https://localhost:1158/em登录,账户为SYS(注意大写),密码为安装oracle时你自己设置的密码。不过想登进去,要先在电脑的服务(控制面板管理工具服务)中启动:OracleDBConsole***,(***为你的数据库名)

如果系统提示错误,如下图:

启动错误.jpg

首先分析原因:OracleDBConsole服务用于网页登录数据库,从Oracle10g后开始出现。但发现应用时很脆弱,安装Oracle10g或者11g后网址发生变动时,这个服务就启动不起来了,或者计算机名字发生变动等也可能启动不来。
解决:
开始->运行->输入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 dbconsoleok

如果问题还解决不了,那就直接建立一个文本文档,输入

@echo off

echo 正在启动ORACle服务......

sc start OracleServiceWQMS

sc start OracleOraDb11g_home1TNSListener

sc startOracleOraDb11g_home1ConfigurationManager

sc start OracleDBConsolewqms

echo 启动完成!

然后把后缀改为.bat,运行即可。注:wqms是我的数据库名

PL/SQL登录

当然,如果是个人用Oracle11g的话,登录这个图形界面不仅复杂,并且每次重启电脑都要启动OracleDBConsole***(数据库名),而且进入了这个浏览器图形界面,感觉好像不能操作数据库,不能进行一般的表操作,我建议你们用PL/SQL

 

PL/SQl导入excel文档

plsql developersql window里输入select * from test for update,其中test是要导入的oracle数据表名称;

执行查询(通过点击按钮或者快捷键F8可以实现);

点击查询结果上面的锁状按钮,使得查询到的内容处于编辑状态。

excel数据表中copyctrl 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

                   spoolon

                   spoolc:/dd.sql

                   select'drop '||object_type||' '||object_name||';' from  user_objects order by object_type;

                   spooloff

                   @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 PostInstallation”,进入安装界面。

1.      选择完全安装,即“Complete”,点击下一步

2.      要求以Oracle用户sys的身份登陆Oracle数据库。在Sys user password中输入用户sys的密码(安装Oracle时输入的);在Net service name中输入Oracle服务的名字,可以以如下方式查看Oracle服务的名字:控制面板”-->“管理工具”--服务,找到“OracleServiceSomename2”字样的服务(其中,Somename2只是一个替代字符串),右键点击属性,在弹出的对话框中,看到可执行文件的路径下面的字符串,此字符串中“.EXE ”后面的部分即是Oracle服务的名字。点击下一步

3.      进入“ArcSDEconfiguration files”,配置ArcSDE文件,选择默认,点击下一步即可。

4.      进入“ArcSDEconfiguration files continued”,继续配置ArcSDE文件,选择默认,点击下一步即可。

5.      创建方案SDE。此时,SDE用户的名字已经固定,为“sde”;程序在(4)中已经获得用户“sde”的密码,此处也以星号形式给出;程序在(3)中已经获得Oracle服务的名称,此处也显示给出。此处全部默认即可,点击下一步创建ArcSDE服务, “Oracle_SID”必须填,而且要填正确,否则ArcSDE服务即使创建了也不能启动。可以用如下方法查看系统已经安装的OracleSID:在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 fororacle下的ArcSDE的真正服务,所以提示是否覆盖。点击,一会儿后弹出对话框,提示耐心等待,询问是否启动新创建的ArcSDE服务,选择,一会儿后提示服务成功启动。

8.       提示安装完成。此时可以到服务列表(控制面板”--管理工具”--服务)中,找到“ArcSDE Servicesomename4” (somename4(9)中出现的ArcSDE服务的名字,默认为esri_sde),可以看到确实正常启动了。

9.      现在可以打开ArcCatalog了,Database ConnectionàAdd Spatial Database Connection

Server:你的计算机名或者127.0.0.1 Service: 在上面安装SDE时的,默认为esri_sdeDataBase:你的数据库名;UserName:*** Password:***

原创粉丝点击