今天看啥
热点:

oracle学习(oracle11R2),oracleoracle11r2


oracle启动必须启动的服务:Oracle 11g服务详细介绍及哪些服务是必须开启的?


-- oracle临时学习任务:

-- 1:创建表空间;创建用户;分配用户到表空间 http://blog.itpub.net/750660/viewspace-1114985/    授权:http://www.cnblogs.com/xmaomao/p/3273102.html

create tablespace CBL_OA_DATA
logging
  datafile 'D:\CBL_OA_DATA2.dbf' --D:\app\Administrator\oradata\orcl\CBL_OA_DATA2.dbf

size 50m
autoextend on
next 50m maxsize 20480m
extent management local;

ALTER USER CBL_OA DEFAULT TABLESPACE  CBL_OA_DATA;


修改普通用的密码:

alter user userName identified by passWord;


-- 2:删除所有的表:通过删除表空间实现 http://blog.csdn.net/oscar999/article/details/7468153   删除用户表空间

DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;


oracle11g之后密码默认180天有效,这里进行修改

SELECT  *  FROM  dba_profiles  WHERE  profile='DEFAULT'  AND  resource_name='PASSWORD_LIFE_TIME';


 ALTER  PROFILE  DEFAULT  LIMIT  PASSWORD_LIFE_TIME  UNLIMITED;





-- 3:查看数据库版本

要dba用户才行

select * from v$instance;

如果要查看自己是专业版本还是企业版本还是个人版本,可以直接登录sqlplus的时候可以看到,版本要一直,否则导入导出可能出现问题;

注意要使用sqlplus执行导入导出本地必须安装oracle,否则没有对应的导入导出的 imp、impdb、exp、expdb命令

oracle导入可以执行命令:C:\oracle\dazer\product\11.2.0\dbhome_1\bin\imp.exe

sql*plus执行命令:C:\oracle\dazer\product\11.2.0\dbhome_1\bin\sqlplus.exe





oracle如何卸载干净,找到Universal Installer进行卸载; 要停止所有的服务;

注册表可以不删除


-- 4:oracle不能使用系统关键字,使用关键字都要用"",加了双引号之后是严格区分大小的

DROP TABLE "table";      
SELECT * FROM "table";

数据库列名使用了关键字怎么办?


系统错误码:

 ORA-28000:账号被锁定;

ORA-01017: invalid username/password; logon denied 错误; 账号和密码错误,重新修改;

ORA-00988: 口令缺失或无效,密码或格式无效;


-- 5 :系统用户查看所有的用户:

select username,password from dba_users; -- 查看所有的用户
 alter USER CBL_OA IDENTIFIED BY W1Q2W3E4R5T88cbl; -- 修改密码;注意密码不用带有引号;
commit;
如果报错:ORA-00988: 口令缺失或无效,就是密码格式无效,不能包含特殊字符;
账号解锁:ALTER USER CBL_OA ACCOUNT UNLOCK;


-- 6: oracle 中的 VARCHAR,VARCHAR2,NVARCHAR2如何取舍 varchar 已经不建议使用了 varchar2(100):只能存100个字符或者50个汉字 NVARCHAR2: 可以存储100汉字或者100个字符 平时就用NVARCHAR2


nvarchar2最多能存2000个字符; varchar2最多能存4000个字符; 超过4000个字符就要用Blob, Clob了? Clob专门存储大文本的;Blob专门存储二进制的其他文件;


ORACLE 日期函数,date和timestamp ,timestamp是data的升级版本

Oracle 字符串转换TIMESTAMP类型或Date类型


--7: 系统管理的sql语句

1、查询数据库中的表空间名称

1)查询所有表空间

select tablespace_name from dba_tablespaces; 
select tablespace_name from user_tablespaces; 

2)查询使用过的表空间  

select distinct tablespace_name from dba_all_tables;

select distinct tablespace_name from user_all_tables; 

2、查询表空间中所有表的名称

select table_name from dba_all_tables where tablespace_name = tablespacename

3、查询系统用户

select * from all_users
select * from dba_users

4、查看当前连接用户

select * from v$session

5、查看当前用户权限

select * from session_privs

6、查看所有的函数和存储过程

select * from user_source

其中TYPE包括:PROCEDURE、FUNCTION

7、查看表空间使用情况

select a.file_id "FileNo",
       a.tablespace_name "表空间",
       a.bytes "Bytes",
       a.bytes - sum(nvl(b.bytes, 0)) "已用",
       sum(nvl(b.bytes, 0)) "空闲",
       sum(nvl(b.bytes, 0)) / a.bytes * 100 "空闲百分率"
  from dba_data_files a, dba_free_space b
 where a.file_id = b.file_id(+)
 group by a.tablespace_name, a.file_id, a.bytes
 order by a.tablespace_name;

HTTP

http://www.cnblogs.com/ITGIS/articles/1763993.html


8:解决ORA-00904: invalid identifier标识符无效

出现这种问题,如果是创建表基本上是创建表的时候使用了,系统关键字,可以查看:

Oracle 关键字(保留字) 大全

包括,uid;type; types


Mysql 关键字-保留字

10 : oracle 日期比较

END_TIME < sysdate
to_date(CREATE_TIME,'YYYY-MM-DD HH24:MI:SS') < sysdate


10: oracle如何实现自增

oracle 字段自增 两段代码搞定


11:关于分页,SQLServer中的top、MySql中的limit、Oracle中的rownum的区别


9:解决ORA-2516: 数据库连接池占用满了

监听程序找不到符合协议堆栈要求的可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小。

数据库连接池问题: 

ORA-12516

oracle默认数据库连接数150个

Listener refused the connection with the following error 错误解


-- 正在使用数据库不要随便停掉,数据库连接占用,可能要半个小时才能关闭掉,或者半天
select count(*) from v$process ; -- 查看数据库当前的连接数量
select value from v$parameter where name = 'processes'; -- 查看允许的最大连接数
select username,count(username) from v$session where username is not null group by username; -- 查看个个用户占用的连接数
Select count(*) from v$session where status='ACTIVE'; -- 查看并发的连接数
select * from v$session where username is not null; -- 详细查看用户的连接的情况
-- 杀死用户下面的sid,serival,username
select sid,serial#,username from V$session where username like 'SAFETY';
-- 关闭tomcat 数据库连接池归还的也很慢
--alter system kill session '7,47878' immediate;  -- 立即杀死










































































10:plsql的问题设置访问数据库地址的问题

查询PLSQL Developer\instantclient_11_2\tnsnames.ora 找到ip地址进行修改,如下例子:




11:Oracle导入导出的问题

oracle数据的导入导出是常见的问题,一般有两种方案,第一个使用plsql带有的工具,第二使用imp或者exp原始命令,推荐使用第二种,第一种本质上用的还是oracle的命令,使用plsql还要安装Oracle客户端。

,使用Net Manager可以配置,在一个客户端访问多个oracle服务器.

参见:

Oracle 导出、导入某用户所有数据(包括表table、视图view、存储过程produc、同义词synonym..)

下面演示基于用户的导入导出



imp,exp与impdp,expdp的适用范围与区别

创建用户并且授权
— Create the user 
create user HR2
  identified by HR
  default tablespace USERS
  temporary tablespace TEMP
  profile DEFAULT;
— Grant/Revoke role privileges 
grant resource to HR2;
grant connect to HR2;
— Grant/Revoke system privileges 
grant alter session to HR2;
grant create database link to HR2;
grant create sequence to HR2;
grant create session to HR2;
grant create synonym to HR2;
grant create view to HR2;
grant unlimited tablespace to HR2;

导出和导入

前期工作:如果导入导出不是在同一个表空间的话,可以用文本编辑工具把dmp文件里面的所有表空间改掉,参见修改dmp文件的表空间  x


 

TABLESPACE "CBL_SAFETY_DATA"


普通导入导出演示

exp 'emergency/emergency2017ae@zjscbldb ' owner=emergency file='%USERPROFILE%\Desktop\emergency.dmp'
imp 'emergency189/emergency189@ORCL ' fromuser = emergency touser =  emergency189 file='%USERPROFILE%\Desktop\emergency.dmp'

imp 'system/zjscbl!qaz@ZJSCBLDB '  fromuser = oatest touser =  oa file='%USERPROFILE%\Desktop\oatest-(CBL_OA_TEST_DATA).dmp'    tablespaces='users' 

exp 'chubeiliang2/W1Q2W3E4R5T88CHUBEILIANG@zjscbldb ' owner=chubeiliang2 file='%USERPROFILE%\Desktop\portal.dmp'  
imp 'portal/portal@zjcblorcl99' fromuser = chubeiliang2  touser = portal  tablespaces=USERS file='%USERPROFILE%\Desktop\portal-(chubeiliang2)-(CBL_PORTAL_TEST_DATA).dmp'


imp 'sys/sys@orcl '  fromuser = oatest touser =  oa file='%USERPROFILE%\Desktop\db\oatest-(CBL_OA_TEST_DATA).dmp'    tablespaces='users'   ;
imp 'sys/sys@orcl '  fromuser = safety touser =  safety file='%USERPROFILE%\Desktop\db\safety.dmp'    tablespaces='users'   ;
imp 'sys/sys@orcl '  fromuser = emergency touser = emergency file='%USERPROFILE%\Desktop\db\emergency.dmp'    tablespaces='users'   ;
imp 'sys/sys@orcl '  fromuser = chubeiliang2 touser = portal file='%USERPROFILE%\Desktop\db\portal-(chubeiliang2)-(CBL_PORTAL_TEST_DATA).dmp'    tablespaces='users'   ;
imp 'sys/sys@orcl '  fromuser =IGDUBDBA touser = IGDUBDBA file='%USERPROFILE%\Desktop\db\IGDUBDBA.dmp'    tablespaces='users'   ;

sys/sys as sysdba




如果是dba导出的根据错误提示,输入管理员账号密码,如:sys/sys as sysdba

IMP Help=Y 查看具体的导入参数

使用dba用户导入导出并指定新的tablesapces

exp 'system/zjscbl!qaz@zjscbldb ' owner=safety file='%USERPROFILE%\Desktop\safety.dmp'  
imp 'sys/sys@ZJCBLORCL99 '  fromuser = safety touser =  safety file='%USERPROFILE%\Desktop\safety.dmp'    tablespaces='users' 


exp 'sys/system12e4Q@orcl as sysdba' owner=HR file='%USERPROFILE%\Desktop\hr.dmp'  

imp 'sys/system12e4Q@ORCL as sysdba' fromuser = hr touser =  hr2 file='%USERPROFILE%\Desktop\hr.dmp' 
这两个句都是cmd命令不是plsql命令,最后不要加;
如果在本机到导入导出不是本机的数据库,请在oracle net manager 工具配置多个数据库地址,如:orcl变成zjscbldb 
 

导入dmp文件报错:IMP-00038 和IMP-00000,如果报错则导出用的expdp,现在导入也用impdp

impdp导入dmp文件ORA-39088: 文件名不能包含路径说明ORA-39001: 参数值无效ORA-39000: 转储文件说明错误

---------------------------------------------------------------

12 : ORACLE 使用最新的expdp和impdb进行导入导出

ORA-39001: 参数值无效ORA-39000: 转储文件说明错误

ORA-39088: 文件名不能包含路径说明

通过文章:http://blog.csdn.net/zengmingen/article/details/51657900

知道impdp命令只可导入expdp导出的dmp文件。expdp导出的时候,需要创建 DIRECTORY

导出什么表空间,导入也要什么表空间。

导出什么用户,导入也要什么用户。

如果没有要新建。

expdp / impdp 用法详解,可以按照用户、表空间、数据库、表来导入导出

一  关于expdp和impdp    

记着还有给用户授予指定目录的读写权限,否则报错:EXPDP和IMPDP使用ORA-39087目录名无效

ORA-00439未启用的功能:DEFERRED_SEGMENT_CREATION,oracle导入导出的使用使用的版本不一致,专业版、标准版导致的;

oracle 39165 :未找到方案 safety  ;  可能是导入导出不是一个用户

-- 查询dba所有的虚目录或者说逻辑目录
select  * from dba_directories;

-- 自己创建一个逻辑目录
create directory dmp_dir as 'c:\oracle\dazer\my_back_dir';

-- 给scott用户授权访问逻辑目录的权限
GRANT READ,WRITE ON DIRECTORY DMP_DIR to scott; 


升级版导入导出,注意逻辑目录要提前查看;

	— 创建表空间,如果导出的数据库在一个单独的表空间,要创建
    create tablespace CBL_OA_TEST_DATA  
    logging  
      datafile 'C:\oracle\dazer\oradata\mydbf\CBL_OA_TEST_DATA.dbf' —D:\app\Administrator\oradata\orcl\CBL_OA_DATA2.dbf  
      
    size 50m  
    autoextend on  
    next 50m maxsize 20480m  

GRANT READ,WRITE ON DIRECTORY DMP_DIR to oatest;  — 授予oatest用户访问逻辑路径dmp_dir的读写权限;


 expdp scott/tiger@orcl directory=dmp_dir dumpfile=myscott.dmp schemas=scott  — 最后不要加分号;导出scott用户到逻辑目录dmp_dir下面的myscott.dmp文件里面
impdp oatest/oatest schemas=oatest directory=dmp_dir dumpfile=OATEST20171011-10.DMP —最后不要加分号;导入dmp_dir逻辑路径下面的dmp文件到用户oatest里面;


13:oracle数据库备份与恢复的几种方式

根据oracle数据库的特点和提供的工具,主要方法有以下几种方法:

14: Oracle-本地连接没问题,远程连接有问题解决方案


15: Oracle 导入导出 的 三种方式

使用plsql导入导出

11G exp 分区表报错 EXP-00003: 未找到段 (0,0) 的存储定义

x

  Oracle 11G在用EXPORT导出时,空表不能导出.
  11GR2中有个新特性,当表无数据时,不分配segment,以节省空间没有任何记录,没有分配段造成的,说到底是延时分区的原因.

解决办法:

alter system set deferred_segment_creation=false; 该参数意思是当创建对象(如表),初始没有数据,是否立即创建segment。默认是true。这会导致在exp时,没有segment的对象不会导出。
需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。
对于已经创建但是还没有Segment的表来说,可以
可以先查询空表  select TABLE_NAME from user_tables where num_rows=0;
执行alter table TABLE_NAME allocate extent;  来使其创建出Segment,//--当然也可以插入一条数据,使其创建Segment .



Oracle中批量导出Sequence, 上面导出没有导出sequenc、视图、函数,一定要导出。


16:ORACLE中SID和SERVICE_NAME的区别

select INSTANCE_NAME from v$instance; -- 查询oralce的实例名称,结果:zjscbldb2
select name from v$database; -- 查询oracle数据库的名称,一个oracle只有一个数据库,但是可能有多个实例,比如 oracle rac.;结果:ZJSCBLDB
JDBC连接数据库使用SERVICE NAME、SID以及TNSName不同写法
jdbc连接数据库使用sid和service_name的区别 ?

数据库名称叫做ZJSCBLDB,实例名称是两个zjscbldb1,zjscbldb2



JDBC连接Oracle RAC的连接串配置


17Oracle 删除重复数据只留一条


数据库表被锁定了,导致用程序执行很慢,正常0.5s,这个慢要28s,最后发现是表被锁定了
--3.查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,mode
SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,
s.terminal, s.logon_time, l.type
FROM v$session s, v$lock l
WHERE s.sid = l.sid
AND s.username IS NOT NULL
ORDER BY sid;

这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现sys/sys as sysdba;,
任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。

--杀掉进程 sid,serial#
alter system kill session'210,11562'; 

18:查询oracle 一个用户有多少张表,视图、函数,防止导入导出的时候不完整。

select * from user_tables  order by table_name asc;
select * from user_sequences;

19:oracle的同义词
有一个用户下面有10张表,另外一个用户也要用,但是防止 另外一个用户破坏表结构,在 这两个用户直接建立同义词synonym
--其中IGDUB是普通账号,IGDUBDBA是DBA账号,下面语句会自动生成所有的插入语句在IGDUBDBA下面执行,就ok; 然后普通用户不用加表的前缀就可以访问DBA
--账号下面的所有表
select 'create or replace synonym IGDUB.'|| table_name ||' for IGDUBDBA.'|| table_name ||';'
from all_tables where owner = 'IGDUBDBA';

--和上面一样的,是另外两个对象
select 'create or replace synonym IGDUB.'|| table_name ||' for IGDUBDBA.'|| table_name ||';'
from all_tables where owner = 'IGDUBDBA'; 


20:oracle的sys密码重置。
http://blog.csdn.net/showrock/article/details/6094381

21: oracle 开发工具 plsql  plsqldeveloper12
PLSQL Developer 12 64位下载 v12.0.4汉化中文版

product code: 4vkjwhfeh3ufnqnmpr9brvcuyujrx3n3le 
serial Number:226959 
password: xs374ca


22:oracle 11 R2 安装之后注意的几点问题
1:修改oracle用户密码永不过期 连接 x
2:设置所有的表都默认分配segment,防止以后导入导出的时候出问题 连接 x
3:设置字符集AL32UTF8=all 32位的UTF-8是最新的Unicde5.0字符集
4:最好修改服务名称,如…zjscbldb、ourslookdb、
5:Oracle EXP-00091的解决方法, 安装完成之后查看数据库字符集和windows注册表字符集

x
出现EXP-00091之后,我们采用的解决方案如下:
EXP-00091: 正在导出有问题的统计信息。
1、查看database中的NLS_CHARACTERSET的值
a、select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET';
b、select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
PARAMETER          VALUE 
-----------------  ----------
NLS_CHARACTERSET   ZHS16GBK 
2、根据第一步查出来的NLS_CHARACTERSET(即ZHS16GBK)来设定
windows环境:cmd > set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
linux环境:Shell > export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

x



22:plsql-v12/oracle客户端配置多数据库服务器


plsql最新版本,在netmanger配置的会自动配置plsql12


23:oracle中使用Clob和Blob这两种

代码里面使用byte[]去接收,如果是Clob查看的时候可以转换成字符串

insert tablename(varcharcolumn,clobcolumn)   
    values('string part',to_clob('clob chars part1 ')||to_clob('clob chars part2')); 
小结:
纯脚本的方式即显式的通过TO_CLOB将字符转为clob类型,每个转换的参数不能超过2000个字符,多个部分通过连接符 || 连接,测试通过,数据已入库,感谢牛人指点。 


























                    
    
版权声明:好记星不如烂笔头,欢迎批判转载

www.bkjia.comtruehttp://www.bkjia.com/sjkqy/1284118.htmlTechArticleoracle学习(oracle11R2),oracleoracle11r2 oracle启动必须启动的服务:Oracle 11g服务详细介绍及哪些服务是必须开启的? -- oracle临时学习任务: -- 1:...

相关文章

    暂无相关文章
相关搜索:

帮客评论

视觉看点