oracle命令

来源:互联网 发布:r330清零软件 编辑:程序博客网 时间:2024/05/19 00:52
 

oralce查看当前登陆用户
SQL>select user from dual;
SQL>show user;
显示当前用户

1、查看当前用户所拥有的权限
Select *from session_privs;
2、查看哪个用户被赋予的系统权限
select * from user_sys_privs;
select * from DBA_SYS_PRIVS where grantee='XXX'
3、查看当前用户被授予的角色
select * from SESSION_ROLES order by ROLE
select * from USER_SYS_PRIVS
4、查看一角色被赋予的系统权限
select prililege from ROLE_SYS_PRIVS where ROLE=&role
输入 role='CONNECT'
5、查询当前角色被授予的角色
select GRANTED_ROLE from ROLE_ROLE_PRIVS where ROLE=&ROLE
输入 role='DBA'

oracle参数文件有三种
spfile:spfile<sid>.ora
pfile:pfilr<sid>.ora
init:init.ora
当前数据库启动,oracle会按照spfile<sid>.ora  init<sid>.ora init.ora的顺序去寻找参数文件,其中spfile为二进制文件,不能直接对其进行修改。
1、如何确定当前的数据库是否以spfile参数文件启动
sql>show parameter spfile;
若value有值,则说明以spfile启动。
2、如何修改参数文件
sql>alter system set time_statistics=fale scope=splife;
scope可以有三种值
spfile:修改spfile中的参数
memory:修改当前内存中的参数值
both:修改内存及spfile参数文件中的参数
ps:不是所有参数都可以这样修改的。在v$system_parameter中有issys_modifiable和isses_modifiable两个字段标志是否可以修改。所有参数值都可以从v$system_paramete中得到。
3. “ORA-32001: write to SPFILE requested but no SPFILE specified at startup”错误,因为没有用spfile参数文件启动数据库。解决办法:

    1) 检查默认路径$ORACLE_HOME/dbs下是否存在spfile<sid>.ora文件。

    2) 若不存在,重新生成spfile

    create spfile from pfile;

    3) 重启数据库。

    4) 重新执行alter system…命令。

    4. 如何根据现有非默认路径下的spfile或pfile参数文件启动数据库

    sql>startup pfile=‘<路径>’;

    sql>startup spfile=‘ <路径>’;

彻底删除表:
purge recyclebin;
删除表不进入Recycle的方法
drop table tableName purge;一般不用


SUM 是返回一列的所有数值的和
AVG 返回一列的平均值
VARIANCE 方差
STDDEV标准差
ADD_MONTHS 日期增加一个月
select task,startdate,enddate origiinal_end, add_months(enddate,2) from project,
LAST_DAY 返回指定月份的最后一天
select enddate, last_day(enddate) from project;
返回闰年的最后一天
select distinct last_day('1-FEB-95') non_leap,last_day('1-FEB-96') leap from project;
给定日期中有多少个月?
select task,startdate,enddate,months_between(startdate,enddate)duration from project;
select task,startdate,enddate,months between(startdate,enddate)duration from project;
调整时区
select enddate edt,new_time(enddate,'edt','pdt')from project;
NEXT_DAY  返回与指定日期在同一个星期或之后一个星期内的,你所要求的星期天的确切日期
select startdate,next_day(startdate,'friday')from project;
SYSDATE返回系统的日期和时间
select distinct sysdate from project;
查看今天已经启动了那些项目
select * from project where startdate>sysdate;
ABS 返回绝对值
select ABS(A) absoulute_value from numbers;
CEIL 返回给定参数相等或比给定参数在的最小整数。FLLOOR 正好相反,它返回与给定参数相等或比给定参数小的最大整数。
select b,ceil(B) ceiling from numbers;
COS,SIN,TAN 函数可以返回给定参数的三角函数值,默认的参数认定为弧度制
弧度制转换为角度*0.017453
EXP将会返回以给定的参数为指数,以e为底的幂值:
sql>select A,EXP(A) from numbers;
LNandLOG 这两个为对数函数,其中LN返回给定参数的自然对数。
select A,LN(ABS(A)) from numbers;  加ABS(A),是为了怕出现负数,因为负数没有对数,不然会报错
注意:可以将ABS函数嵌入到LN函数中使用,第二个对数函数需要两个参数,其中第二个参数为底数,10为底的B列的对数值:
select B,LOG(B,10) from numbers;
MOD 返回 A与B相除后的余数
select A,B, MOD(A,B) from numbers;

查看当前数据名
select name from v$database;
show parameter db
数据库和操作系统之间的交互用的是数据库实例名。

查询当前数据库实例名
方法一:select instance_name from v$instance;
方法二:show parameter instance

数据库域名在存在于参数文件中,他的参数是db_domain


查询数据库服务名
方法一:select value from v$parameter where name = 'service_name';
方法二:show parameter service_name