1创建数据库
(1)数据库配置助手
点击菜单“开始”,找到Oracle数据库管理系统主文件夹“Oracle – OraDb11g_home1”(该文件夹名称因版本不同会有出入,使用时请按其命名规则自行对照),打开后找到子文件夹“配置和移植工具”,选择该文件夹下的“Database Configuration Assistant”。
(2)欢迎使用
数据库配置助手欢迎界面,点击“下一步”;
(3)操作
选择将要执行的操作,默认选择创建数据库,点击“下一步”;
(4)数据库模板
新建数据库的用途,一般用途按默认配置,点击“下一步”;
(5)数据库标识
给新建的数据库命名,这里我们输入“pano”,点击“下一步”;
(6)管理选项
选择数据库的管理策略,按默认配置,点击“下一步”;
(7)数据库身份证明
输入四个内置用户名的口令,为了便于记忆,我们输入的口令与其用户名保持一致,如:用户名sys对应的口令就是sys,点击“下一步“;
(8)存储选项
选择存储机制,按默认配置,点击“下一步”;
(9)数据库所在位置
选择数据库文件存放位置,按默认配置,点击“下一步”;
(10)恢复配置
选择数据库恢复策略,按默认配置,点击“下一步”;
(11)数据库内容
选择示例方案和定制脚本,按默认配置,点击“下一步”;
(12)初始化参数
初始化参数配置,按默认配置,点击“下一步”;
(13)安全设置
选择安全设置,按默认配置,点击“下一步”;
(14)自动维护任务
启动自动维护任务,按默认配置,点击“下一步”;
(15)数据库存储
数据库存储相关信息,按默认配置,点击“下一步”;
(16)创建选项
选择创建数据库的模板和脚本,按默认配置,点击“完成”;
(17)确认创建
确认新建数据库相关信息,按默认配置,点击“确定”;
(18)创建
(19)完成
数据库创建完成信息,按默认配置,点击“退出”。
注:以上是在Oracle11g中使用Database Configuration Assistant创建数据库的完整步骤。如果您使用的是其他版本的Oracle,也许会存在步骤上的差异,请自行对照。
2创建表空间和用户
(1)进入命令提示行
点击“开始”菜单,选择“命令提示符”,或者运行“cmd”进入;
(2)输入sqlplus
在命令行输入:sqlplus,然后回车;
(3)输入用户名sys
使用sys账号以管理员的身份登录,在“请输入用户名:”之后输入:sys as sysdba,然后回车;
(4)输入密码sys
在“输入口令:”之后输入:sys,然后回车,出现连接到的提示,表示登录成功。
(5)创建表空间
在“SQL>”之后输入:
CREATE TABLESPACE POISPACE
DATAFILE 'D:\Oradata\pano\PANOSPACE.DBF' SIZE200M AUTOEXTEND ON NEXT 20M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
然后回车;
(6)创建用户名sa及口令admin
在“SQL>”之后输入:
CREATE USER "SA" PROFILE"DEFAULT" IDENTIFIED BY "admin" DEFAULT TABLESPACE"POISPACE" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
GRANT UNLIMITED TABLESPACE TO"SA";
GRANT "CONNECT" TO"SA";
GRANT "RESOURCE" TO"SA";
然后回车;
3创建数据表
(1)PIC_ATTRIBUTE(全景影像基本信息表)
序号 | 字段名 | 类型 | 长度 | 空值 | 有效性规则 | 键 | 默认值 | 说明 |
1 | PIC_ID | 字符串型 | 20 | 否 |
| PK |
| 全景影像编号 |
2 | PIC_FRONT_ID | 字符串型 | 20 | 是 |
|
|
| 前一张全景影像编号 |
3 | PIC_BACK_ID | 字符串型 | 20 | 是 |
|
|
| 后一张全景影像编号 |
4 | PIC_LEFT_ID | 字符串型 | 20 | 是 |
|
|
| 左一张全景影像编号 |
5 | PIC_RIGHT_ID | 字符串型 | 20 | 是 |
|
|
| 右一张全景影像编号 |
6 | LINE_ID | 字符串型 | 20 | 否 |
|
|
| 线路编号 |
7 | PIC_NAME | 字符串型 | 200 | 否 | 影像文件名称,包括文件类型后缀 |
|
| 影像名称 |
8 | WIDTH | 长整型 |
| 否 |
|
|
| 影像宽度(像素) |
9 | HEIGHT | 长整型 |
| 否 |
|
|
| 影像高度(像素) |
10 | LONGITUDE | 浮点型 |
| 否 | 经度取值范围内 |
|
| 影像地理经度 |
11 | LATITUDE | 浮点型 |
| 否 | 纬度取值范围内 |
|
| 影像地理纬度 |
12 | ABS_ANGLE | 浮点型 |
| 否 |
|
|
| 影像参数 |
13 | TOW_ANGLE | 浮点型 |
| 否 |
|
|
| 影像参数 |
14 | WORKER_NAME | 字符串型 | 10 | 是 |
|
|
| 采集人 |
15 | WORKER_DEP | 字符串型 | 200 | 是 |
|
|
| 采集人所在单位 |
16 | TIME | 日期型 |
| 是 |
|
| getdate() | 影像采集时间 |
在“SQL>”之后输入:
CREATE TABLE"SA"."PIC_ATTRIBUTE"
(
PIC_ID VARCHAR2(20) NOT NULL PRIMARY KEY,
PIC_FRONT_ID VARCHAR2(20),
PIC_BACK_ID VARCHAR2(20),
PIC_LEFT_ID VARCHAR2(20),
PIC_RIGHT_ID VARCHAR2(20),
LINE_ID VARCHAR2(20) NOT NULL,
PIC_NAME VARCHAR2(200) NOT NULL,
WIDTH NUMBER(7,0) NOT NULL,
HEIGHT NUMBER(7,0) NOT NULL,
LONGITUDE NUMBER(16,7) NOT NULL,
LATITUDE NUMBER(16,7) NOT NULL,
ABS_ANGLE NUMBER(16,7) NOT NULL,
TOW_ANGLE NUMBER(16,7) NOT NULL,
WORKER_NAME VARCHAR2(10),
WORKER_DEP VARCHAR2(200),
TIME VARCHAR2(20)
)
TABLESPACE POISPACE
STORAGE
(
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
然后回车;
(2)POI_LOCATION(兴趣点分布点位信息表)
序号 | 字段名 | 类型 | 长度 | 空值 | 有效性规则 | 键 | 默认值 | 说明 |
1 | POI_ID | 字符串型 | 20 | 否 |
| PK |
| 每个兴趣点记录编号 |
2 | PIC_ID | 字符串型 | 20 | 否 |
|
|
| 全景影像编号 |
3 | ATTR_ID | 字符串型 | 20 | 是 |
| FK |
| 属性编号 |
4 | LOCAL_X | 浮点型 |
| 否 | 像素取值范围内 |
|
| 像素X坐标 |
5 | LOCAL_Y | 浮点型 |
| 否 | 像素取值范围内 |
|
| 像素Y坐标 |
6 | LONGITUDE | 浮点型 |
| 是 | 经度取值范围内 |
|
| 地理经度 |
7 | LATITUDE | 浮点型 |
| 是 | 纬度取值范围内 |
|
| 地理纬度 |
8 | TIME | 日期型 |
| 是 |
|
| getdate() | 采集时间 |
在“SQL>”之后输入:
CREATE TABLE"SA"."POI_LOCATION"
(
POI_ID VARCHAR2(20) NOT NULL PRIMARY KEY,
PIC_ID VARCHAR2(20) NOT NULL,
ATTR_ID VARCHAR2(20),
LOCAL_X NUMBER(7,0) NOT NULL,
LOCAL_Y NUMBER(7,0) NOT NULL,
LONGITUDE NUMBER(16,7),
LATITUDE NUMBER(16,7),
TIME VARCHAR2(20)
)
TABLESPACE POISPACE
STORAGE
(
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
然后回车;
(3)POI_ATTRIBUTE(兴趣点属性信息表)
序号 | 字段名 | 类型 | 长度 | 空值 | 有效性规则 | 键 | 默认值 | 说明 |
1 | ATTR_ID | 字符串型 | 20 | 否 |
| PK |
| 属性编号 |
2 | NAME | 字符串型 | 50 | 否 |
|
|
| 实体名称 |
3 | TELEPHONE | 字符串型 | 15 | 是 | 电话号码格式 |
|
| 电话号码 |
4 | | 字符串型 | 30 | 是 | 邮件地址格式 |
|
| 电子邮件地址 |
5 | TYPE1 | 字符串型 | 20 | 否 |
|
|
| 兴趣点一级分类 |
6 | TYPE2 | 字符串型 | 20 | 否 |
|
|
| 兴趣点二级分类 |
7 | ADD_NAME | 字符串型 | 50 | 是 |
|
|
| 地址名称 |
8 | ADD_CODE | 字符串型 | 6 | 否 |
|
|
| 地址编码 |
9 | DES | 字符串型 | 500 | 是 |
|
|
| 兴趣点描述信息 |
在“SQL>”之后输入:
CREATE TABLE"SA"."POI_ATTRIBUTE"
(
ATTR_ID VARCHAR2(20) NOT NULL PRIMARY KEY,
NAME VARCHAR2(50) ,
TELEPHONE VARCHAR2(15),
EMAIL VARCHAR2(30),
TYPE1 VARCHAR2(20),
TYPE2 VARCHAR2(20),
ADD_NAME VARCHAR2(50),
ADD_CODE VARCHAR2(6),
DES VARCHAR2(500)
)
TABLESPACE POISPACE
STORAGE
(
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
然后回车;
(4)POI_ENCODE(兴趣点分类编码表)
序号 | 字段名 | 类型 | 长度 | 空值 | 有效性规则 | 键 | 默认值 | 说明 |
1 | ID | 长整型 | 20 | 否 | 自增长 | PK |
| 序号 |
2 | TYPE_NAME | 字符串型 | 20 | 否 |
|
|
| 一级分类名称 |
3 | TYPE_CODE | 字符串型 | 4 | 否 | 2位纯数字 |
|
| 一级分类编码 |
4 | TYPE_NAME2 | 字符串型 | 20 | 否 |
|
|
| 二级分类名称 |
5 | TYPE_CODE2 | 字符串型 | 8 | 否 | 2位纯数字 |
|
| 二级分类编码 |
6 | DES | 字符串型 | 500 | 是 |
|
|
| 分类说明 |
在“SQL>”之后输入:
CREATE TABLE"SA"."POI_ENCODE"
(
IDVARCHAR2(20) NOT NULL PRIMARY KEY,
TYPE_NAME VARCHAR2(20) NOT NULL,
TYPE_CODE VARCHAR2(4) NOT NULL,
TYPE_NAME2 VARCHAR2(20) NOT NULL,
TYPE_CODE2 VARCHAR2(8) NOT NULL,
DES VARCHAR2(500)
)
TABLESPACE POISPACE
STORAGE
(
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
然后回车;
(5)LOCATION_ENCODE(省市地区分类编码表)
序号 | 字段名 | 类型 | 长度 | 空值 | 有效性规则 | 键 | 默认值 | 说明 |
1 | ID | 长整型 |
| 否 | 自增长 | PK |
| 序号 |
2 | PROVINCE_NAME | 字符串型 | 20 | 否 |
|
|
| 省市名称 |
3 | PROVINCE_CODE | 字符串型 | 6 | 否 | 6位纯数字 |
|
| 省市编号 |
4 | AREA_NAME | 字符串型 | 20 | 否 |
|
|
| 地区名称 |
5 | AREA_CODE | 字符串型 | 6 | 否 | 6位纯数字 |
|
| 地区编号 |
6 | COUNTY_NAME | 字符串型 | 20 | 否 |
|
|
| 区县名称 |
7 | COUNTY_CODE | 字符串型 | 6 | 否 | 6位纯数字 |
|
| 区县编号 |
在“SQL>”之后输入:
CREATE TABLE"SA"."LOCATION_ENCODE"
(
IDNUMBER(7,0) NOT NULL PRIMARY KEY,
PROVINCE_NAME VARCHAR2(20) NOT NULL,
PROVINCE_CODE VARCHAR2(6) NOT NULL,
AREA_NAME VARCHAR2(20) NOT NULL,
AREA_CODE VARCHAR2(6) NOT NULL,
COUNTY_NAME VARCHAR2(20) NOT NULL,
COUNTY_CODE VARCHAR2(6) NOT NULL
)
TABLESPACE POISPACE
STORAGE
(
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
然后回车;
(6)PIC_SLICE_0(全景影像零级切片信息表)
序号 | 字段名 | 类型 | 长度 | 空值 | 有效性规则 | 键 | 默认值 | 说明 |
1 | SLICE_ID | 字符串型 | 20 | 否 |
| PK |
| 切片编号 |
2 | SLICE_NAME | 字符串型 | 20 | 否 |
|
|
| 切片名称 |
3 | PIC_ID | 字符串型 | 20 | 否 |
|
|
| 图片编号 |
4 | ALPHA_MAX | 浮点型 |
| 否 | 0-360 |
|
| 水平角最大值 |
5 | ALPHA_MIN | 浮点型 |
| 否 | 0-360 |
|
| 水平角最小值 |
6 | BETA_MAX | 浮点型 |
| 否 | 0-180 |
|
| 俯仰角最大值 |
7 | BETA_MIN | 浮点型 |
| 否 | 0-180 |
|
| 俯仰角最小值 |
8 | Z_MAX | 浮点型 |
| 否 | >0 |
|
| 焦距最大值 |
9 | Z_MIN | 浮点型 |
| 否 | >0 |
|
| 焦距最小值 |
10 | SLICE_CONTENT | 二进制流 |
| 否 |
|
|
| 切片数据 |
在“SQL>”之后输入:
CREATE TABLE"SA"."PIC_SLICE_0"
(
SLICE_ID VARCHAR2(20) NOT NULL PRIMARY KEY,
SLICE_NAME VARCHAR2(20) NOT NULL,
PIC_ID VARCHAR2(20) NOT NULL,
ALPHA_MAX NUMBER(8,4) NOT NULL,
ALPHA_MIN NUMBER(8,4) NOT NULL,
BETA_MAX NUMBER(8,4) NOT NULL,
BETA_MIN NUMBER(8,4) NOT NULL,
Z_MAX NUMBER(16,7) NOT NULL,
Z_MIN NUMBER(16,7) NOT NULL,
SLICE_CONTENT BLOB NOT NULL
)
TABLESPACE POISPACE
STORAGE
(
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
);
然后回车;
(*)PIC_SLICE_N(全景影像N级切片信息表)
序号 | 字段名 | 类型 | 长度 | 空值 | 有效性规则 | 键 | 默认值 | 说明 |
1 | SLICE_ID | 字符串型 | 20 | 否 |
| PK |
| 切片编号 |
2 | SLICE_NAME | 字符串型 | 20 | 否 |
|
|
| 切片名称 |
3 | PIC_ID | 字符串型 | 20 | 否 |
|
|
| 图片编号 |
4 | ALPHA_MAX | 浮点型 |
| 否 | 0-360 |
|
| 水平角最大值 |
5 | ALPHA_MIN | 浮点型 |
| 否 | 0-360 |
|
| 水平角最小值 |
6 | BETA_MAX | 浮点型 |
| 否 | 0-180 |
|
| 俯仰角最大值 |
7 | BETA_MIN | 浮点型 |
| 否 | 0-180 |
|
| 俯仰角最小值 |
8 | Z_MAX | 浮点型 |
| 否 | >0 |
|
| 焦距最大值 |
9 | Z_MIN | 浮点型 |
| 否 | >0 |
|
| 焦距最小值 |
10 | SLICE_CONTENT | 二进制流 |
| 否 |
|
|
| 切片数据 |
PIC_SLICE_N,表示切片有多少级就创建多少张表,每一级对应一张表,每张表的字段与PIC_SLICE_0完全一致,所以就不再阐述了。表命名如:PIC_SLICE_1(对应一级切片),PIC_SLICE_2(对应二级切片),PIC_SLICE_3(对应三级切片)等。
4连接数据库
(1)启动Oracle服务;
(2)点击菜单“设置>>数据库设置”,设置参数,数据库类型选择Oracle;
(3)测试连接:单击按钮“测试连接”;
(4)连接成功;
(5)保存:单击按钮“确定”。
5表空间扩容
当影像数据入库容量达到一定数值,如:30G是单个表空间数据文件的最大容量值,这时候继续往Oracle录入数据的无法成功的。可以通过如下两条语句查看当前表空间的使用状况以及扩展当前表空间的容量。 (1)查看表空间: select sum(bytes)/(1024*1024) as free_space,tablespace_name from dba_free_space group by tablespace_name; SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE" FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;
(2)扩容表空间: alter tablespace tablespace_name add datafile '新增表空间数据文件路径和名称' size 30000M;