今天看啥
    热点:

      天发国际娱乐官网:出席嘉宾:厉以宁全国政协常委,北京大学光华管理学院名誉院长陈锡文全国政协常委、经济委员会副主任,中央农村工作领导小组原副组长兼办公室主任,中央财经领导小组办公室原副主任杨凯生全国政协委员,中国银监会特邀顾问,中国工商银行原行长常振明全国政协委员,中国中信集团有限公司董事长钱颖一全国政协委员,清华大学经济管理学院院长  3月7日14时30分:政协委员谈坚定文化自信讲好中国故事习近平同志指出,实现中华民族伟大复兴,必须坚定中国特色社会主义道路自信、理论自信、制度自信、文化自信。

      oracle学习(oracle11R2),oracleoracle11r2


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


      -- oracle临时学习任务:

      -- 1:创建表空间;创建用户;分配用户到表空间?http://www.1click-soft.com/tfgjylgw/750660/viewspace-1114985/? ? 授权:http://www.1click-soft.com/tfgjylgw/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://www.1click-soft.com/tfgjylgw/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.1click-soft.com/tfgjylgw/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://www.1click-soft.com/tfgjylgw/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://www.1click-soft.com/tfgjylgw/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.1click-soft.comtruehttp://www.1click-soft.com/sjkqy/1284118.htmlTechArticleoracle学习(oracle11R2),oracleoracle11r2 oracle启动必须启动的服务:Oracle 11g服务详细介绍及哪些服务是必须开启的? -- oracle临时学习任务: -- 1:...

      相关文章

        暂无相关文章
      相关搜索:

      帮客评论

      视觉看点
      百度 360 搜狗