当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
ORACLEsqlplus命令(五)
发布时间:2010/11/10 14:48:34 来源:www.xue.net 编辑:城市总裁吧
     4.数据库链接 (DATABASE LINK)

  CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘数据库连接字符串’;

  数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.

  数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样

  数据库全局名称可以用以下命令查出

  SELECT * FROM GLOBAL_NAME;

  查询远端数据库里的表

  SELECT …… FROM 表名@数据库链接名;

  五.权限管理 (DCL) 语句

  1.GRANT 赋于权限

  常用的系统权限集合有以下三个:

  CONNECT(基本的连接), RESOURCE(程序开发), DBA(数据库管理)

  常用的数据对象权限有以下五个:

  ALL ON 数据对象名, SELECT ON 数据对象名, UPDATE ON 数据对象名,

  DELETE ON 数据对象名,   INSERT ON 数据对象名, ALTER   ON 数据对象名

  GRANT CONNECT, RESOURCE TO 用户名;

  GRANT SELECT ON 表名 TO 用户名;

  GRANT SELECT, INSERT, DELETE ON表名 TO 用户名1, 用户名2;

  2.REVOKE 回收权限

  REVOKE CONNECT, RESOURCE FROM 用户名;

  REVOKE SELECT ON 表名 FROM 用户名;

  REVOKE SELECT, INSERT, DELETE ON表名 FROM 用户名1, 用户名2;

  查询数据库中第63号错误:

  select orgaddr,destaddr from sm_histable0116 where error_code='63';

  查询数据库中开户用户最大提交和最大下发数: select MSISDN,TCOS,OCOS from ms_usertable;

  查询数据库中各种错误代码的总和:

  select error_code,count(*) from sm_histable0513 group by error_code order

  by error_code;

  查询报表数据库中话单统计种类查询。

  select sum(Successcount) from tbl_MiddleMt0411 where ServiceType2=111

  select sum(successcount),servicetype from tbl_middlemt0411 group by servicetype

  另外,当建的表中出现好多重复数据时,可进行相应的删除操作,如下所示:

  删除重复行有两种方法:

  数据准备

  建表语句

  create table a(a varchar2(10),b varchar2(20));

  插入数据

  insert into a values('11','22');

  insert into a values('11','22');

  insert into a values('11','22');

  insert into a values('aa','bb');

  insert into a values('aa','bb');

  insert into a values('cc','dd');

  commit;

  克隆一张表

  create table test  as (select * from a);

  查询(1)select * from test

  1 11 22

  2 11 22

  3 11 22

  4 aa bb

  5 aa bb

  6 cc dd

  (2)

  select distinct * from test;

  1 11 22

  2 cc dd

  3 aa bb

  1)利用中间表法:create table test_copy as (select distinct * from test);

  然后删除原表 drop table test;

  create table test as (select  * from test_copy);

  然后就完成了。

  2)利用rowid法

  sql语句如下:

  delete from test t where rowid not in(

  select max(rowid) from test p  where t.a=p.a and t.b=p.b);

  commit;

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved