Oracle采坑记录

啊一年多没碰oracle了,这两天安装,建表空间,从其他库导数据过来,加起来搞了得有一天时间,坑太多了,一个一个记录一下
我系统是win10 64位

安装

安装过程有两个特别注意的地方

1.解压官网下载的俩压缩包之后,在database>stage>cvu>cvu_prereq.xml中添加下面这种操作系统:

<OPERATING_SYSTEM RELEASE="6.2">
           <VERSION VALUE="3"/>
           <ARCHITECTURE VALUE="64-bit"/>
           <NAME VALUE="Windows 10"/>
           <ENV_VAR_LIST>
               <ENV_VAR NAME="PATH" MAX_LENGTH="1023" />
           </ENV_VAR_LIST>
</OPERATING_SYSTEM>

2.安装途中报未找到文件

XXX\product\11.2.0\dbhome_1\owb\external\oc4j_applications\applications\WFMLRSVCApp.ear

官网压缩的俩压缩包:win64_11gR2_database_1of2和win64_11gR2_database_2of2,将2of2中的database\stage\Components*拷到1of2中database\stage\Components目录下即可

创建表空间和用户

就把语句分享一下吧

/*第1步:创建临时表空间  */
create temporary tablespace hugeo
tempfile 'E:\programFiles\oracle\oradata\orcl\HUGEO.DBF' 
size 50m  
autoextend on
next 50m maxsize 2048m  
extent management local;

/*第2步:创建数据表空间  */
create tablespace hugeo_data  
logging 
datafile 'E:\programFiles\oracle\oradata\orcl\HUGEO_DATA.DBF' 
size 50m  
autoextend on
next 50m maxsize 2048m  
extent management local;  

/*第3步:创建用户并指定表空间  用户名:szv61 密码:sz123*/
create user hugeoidentified by 123456
default tablespace hugeo_data 
temporary tablespace hugeo;  

/*第4步:给用户授予权限  */
grant connect,resource to hugeo; 

-- 删除用户和表空间
drop user hugeo cascade;
drop tablespace hugeo including contents and datafiles;
drop tablespace hugeo_data including contents and datafiles;

-- 更改用户名
update  user$ set name='hugeo2' where NAME ='hugeo';
alter system checkpoint;
alter system flush shared_pool;
alter user hugeo identified by 123456;

一开始我给用户赋予了dba权限,后来搞得乱七八糟的就把表空间和用户都删了,这下诡异了,用户都删了,不仅还能用plsql登录,还能以dba的身份登录,在网上找到了原因,oracle认证分为os认证和口令认证
出现以上状况,登录的时候根本和hugeo这个用户无关,登录oracle用的是os认证,登录后用户是sys
你用hugeo,123,578,随意密码都能登,因为根本没关系.
解决办法是更改认证方式:
修改sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES= (NTS)
改为
SQLNET.AUTHENTICATION_SERVICES= (NONE)

*.ora文件的位置:XXX\oracle\product\11.2.0\dbhome_2\NETWORK\ADMIN

怎么在不安装oracle的情况下,使用plsql登录远程库

PLSQL12破解版下载

  1. 下载oracle客户端工具Oracle Instant Client,注意三个箭头指的地方,该点的点,该装的装
    这里写图片描述

  2. 第一步搞定之后,在plsql中配置
    这里写图片描述

从其他库导数据

如果俩库的表空间名称不一样,就不要想着通过pde文件一次到位了
没有clob字段的:
表结构和数据分开导,具体:
1. 远程:导出用户对象,不包括存储,只导出表结构的sql
2. 本地:导入表->SQL导入
3. 远程:导出pde,包括存储
4. 本地:导入pde,不要勾选删除表和创建表

有clob字段的
如果clob字段的内容长度不超过4000,用plsql查询出所有数据导出为csv,在本地通过文本导入器进行导入,我这里遇到了乱码的问题,乱码的话新建一个Excel,数据->从文本/csv,选择plsql导出的csv,正确得展示在excel之后,另存为excel,选择csv格式,再去plsql中使用文本导入器导入咱自己保存的csv,就不乱码了
这里写图片描述
这里写图片描述

扫描二维码关注公众号,回复: 1113696 查看本文章

如果clob字段内容过长会报错的,这时候就比较复杂了,我用的办法是先不带clob字段把数据插到表里,然后使用excel的公式,拼出了类似这样的sql直接执行:

declare
clob1 clob :='很长字符串';
clob2 clob :='又是很长字符串';
-- 此处省略很多行
begin
  update mytable set desc = clob1 where id = 1;
  update mytable set desc = clob2 where id = 2;
  -- 此处又省略很多行
end;

猜你喜欢

转载自blog.csdn.net/u010588262/article/details/79628083
今日推荐