ORACLE常用的一些语句

有点乱,将就看吧
1、收回用户权限:Invoke dba from user
2、查看数据库的归档模式:select name,log_mode from v$database
3、逐步启动数据库:
1、sqlplus /nolog
2、conn sys/aaaaaa as sysdba
3、start nomount
4、start mount
startup可以直接启动数据库
4、为表空间添加数据文件
alter tablespace sysaux add datafile 'f:/oracle/datafile/sysaux02.dbf' size 2G reuse;
5、表空间空间不足时,会导致oracle自动关闭,偶尔会启动失败,增加表空间数据文件就OK
6、时间运算:
1/24代表一个小时,1/1440代表一分钟,1/86400代表一秒钟
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

Session altered.

SQL> select sysdate, sysdate+1/24, sysdate +1/1440, sysdate + 1/86400 from dual;

SYSDATE SYSDATE+1/24 SYSDATE+1/1440 SYSDATE+1/86400
------------------- ------------------- ------------------- -------------------
2008-04-16 21:23:19 2008-04-16 22:23:19 2008-04-16 21:24:19 2008-04-16 21:23:20

SQL> select sysdate,sysdate + 60/(24*60*60) from dual;

SYSDATE SYSDATE+60/(24*60*6
------------------- -------------------
2008-04-16 21:24:40 2008-04-16 21:25:40
求日期:
select convert(char(10),getdate(),20) from dual
select trunc(sysdate) value from dual
select to_char(sysdate,'yyyy-mm-dd') value from dual
求时间:
select to_char(sysdate,'hh24:mm:ss') value from dual
当月最后一天:
select LAST_DAY(sysdate) value from dual
本星期的某一天(比如星期日):
SELECT Next_day(sysdate,7) vaule FROM DUAL;
得到本周的某一天,sysdate必须小于要查询的日期,比如今天是周二,Next_day(sysdate,2),得到的是下一个周二的日期,查询周三则得到正确值
7、初始化参数replication_dependency_tracking = FALSE,重建数据库。


修改表的一些常用语法
  添加列:alter table hek_test_headers add col_test number;
  修改列:alter table hek_test_lines modify litem varchar(40) not null;
  删除列:alter table hek_test_lines drop columns col_test;
  重命名列:alter table hek_test_lines rename column col_test to col_test2;
  添加主键:alter table HEK_TEST_LINES add constraint pk_test primary key (LINEID);
  添加外键:alter table hek_test_lines add constraint fk_test foreign key(hid) references hek_test_headers(hid)
  失效主键:alter table hek_test_lines disable constraint pk_test;
  失效外键:alter table hek_test_lines disable constraint fk_test;
  删除主键:alter table hek_test_lines drop constraint pk_test cascade;
删除外键:alter table HEK_TEST_LINES drop constraint fk_test;

舍入函数
  三个舍入函数:round()、floor()、ceil()
  Round():实现四舍五入,允许设置保留的位数,这个也最常用的四舍五入函数。
  Floor():实现取整。一般的程序语言是整数除以整数,返回的仍是整数。PL/SQL想得比较多。
  Ceil():实现近似值。Ceil会直接近似取整,如果想保留小数,就要自己动手写个函数了。
  select 9/4 from dual;
  select CEIL(9/4) from dual;
  select round(9/4,0) from dual;
实现类似BREAK语句
  在没有LOOP…END LOOP时,是不能使用EXIT的。但可以通过GOTO语句实现。
Connect by
Oracle层次树是通过Connect by [条件] Start with [条件] 来实现。这一功能非常好用,比如ERP中的BOM、HR中的组织架构,就算是这类的典型应用了。不过,Oracle EBS11i中好象没实现,BOM也没有使用树这种组件。
从'999999877'开始,查询其父部门,直到顶层
select level,t.* from emp t connect by prior t.pid=t.id start with t.id='999999877'
从'999999877'开始,查询其子部门,直到底层
select level,t.* from jivegroup t connect by prior t.id=t.id start with
t.id='999999877'

ORACLE的PL SQL通过exec immediate执行DDL语句,如创建表,经常用类似这样的语句:exec immediate 'create table emp1 as select * from EMP',注意表名EMP必须大写,不然找不到表,但这样创建的表没有主键、索引等约束,也可以用exec immediate给新表加上索引
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值