zoukankan      html  css  js  c++  java
  • Oracle常出现的问题

    1、很多程序员,为了测试,创建用户时都喜欢用123为密码。在oracle里,密码不能以数字开头。

    密码前面加个字母就可以创建成功了。

    2、创建成功后,首先想到的就是试着连接一下呀,好了,又报错:

    要在sysdba里操作授权(conn /as sysdba)不然的话,会报“未连接”的错误。

    完整的授权语句一般是:

    grant connect,create session,resource,dba to test;

    3、如果您在创建用户时确认加上密码,连接也带上正确的密码,但还是出现以下错误的话(至于是什么原因,请看红色字体标示),

    就要用:alter user test identified by a123;来修改一下密码了。

    pl/sql developer里登录时,如果在登录框里的“连接为”选择Normal也会出现这种情况,选择:sysdba却可以成功登录。

     

    Oralce用户以normal状态登录不进去了,但是用sysdba确可以登录。究其原因有以下两点:
    A. oracle的dba组是操作系统相关的,ORA_DBA是windows下的dba组。因为使用了操作系统认证的原因。不要用户名和密码都能以sysdba身份登陆。
    B. 通过重新设置system用户的密码,可以解决以上问题。(以system用户sysdba状态登录,然后用alter user system identified by system(system为密码)语句修改密码,修改成功后即可登录。)

    4、当你登录时如果有以下错误提示(这种错误很简单,记住以下解锁语句即可):

    conn /as sysdba;---在sysdba用户下才可以进行解锁操作。

    alter user test account unlock;

    以下为一些常用操作语句:

     1 --给用户解锁命令:
     2 alter user scott account unlock;(在sys用户下执行)
     3 
     4 --查询表结构:
     5 desc emp;
     6 desc dept;
     7 desc salgrade;
     8 
     9 --查询系统当前时间
    10 select sysdate from dual;
    11 
    12 selec ename,sal*12 from emp;--每人的年薪
    13 
    14 用双引号括着的字段表示外号,能保持原形(不会大小写改变)
    15 注意:任何含有空值的数学表达式最后都是空值
    16 字符串连接用:||
    17 去除重复记录:select distinct deptno from emp;
    18 select ename,sal from emp where ename>'CBA';--比较字符串实际和
    19 java一样,都是比较ASCII码
    20 
    21 select ename,sal from emp where sal between 800 and 1500;与
    22 select ename,sal from emp where sal >=800 and sal<=1500 等值的
    23 select ename,sal,comm from emp where comm is null;--查询空值,不能comm=null;
    24 不是空值:is not null;
    25 
    26 select ename,sal from emp wehre ename like '%$%%' escape '$'-- 查询含有%有,且自定义$为转义字符(一般/为转义字符)。

    oracle版本之间的差异造成的问题:

    1、innerjoin

    1 select * from tab1 a inner join tab2 b on a.id=b.id --在oracle 8i里出现上图的错误
    2 
    3 --改为以下写法则没问题
    4 select * from tab1 a ,tab2 b where a.id=b.id

     2、正则表达式:

    1 select * from tab 
    2 where 
    3 regexp_like(substr(code, -2) ,'^[0-9]+[0-9]$') --过滤字段为数字
    4 order by code desc
    5 --以上写法在oracle 8i里出现上图的错误,改为以下写法问题解决:
    6 
    7 select * from tab 
    8 where 
    9 trim(translate(substr(code, -2) ,'1234567890','')) is  null --过滤字段为数字

    oracle实现TOP N的功能:

    select * from ( select  name,age,sex  from  tab  order by a.t_date desc) where  rownum<=200
  • 相关阅读:
    [BZOJ 2186][Sdoi2008]沙拉公主的困惑(欧拉函数)
    [BZOJ1271][WC2008]秦腾与教学评估(巧妙的二分)
    [BZOJ2879][Noi2012]美食节(最小费用最大流动态加边)
    [BZOJ1070][SCOI2007]修车(最小费用最大流)
    [BZOJ1211][HNOI2004]树的计数(Prufer序列)
    [BZOJ1406][AHOI2007]密码箱(数论)
    1、体验
    sublime 安装插件
    <a>标签中的href="javascript:;"就是去掉a标签的默认行为
    html 中的media属性
  • 原文地址:https://www.cnblogs.com/comrd/p/3578281.html
Copyright © 2011-2022 走看看