77范文网 - 专业文章范例文档资料分享平台

sql精华收集(2)

来源:网络收集 时间:2019-03-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

6。使触发器为无效alter trigger yourtriggername disable

如果是对于某一个表的所有的触发器:

alter table yourtablename disable all triggers

更改数据库时间显示格式:

SQL> alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'; 会话已更改。

1. 选取 TOP N 行记录

A. SELECT * FROM CAT WHERE ROWNUM<=N B. SELECT * FROM

( SELECT * FROM CAT ORDER BY TABLE_TYPE ) WHERE ROWNUM<=N

2. 选取N1-N2行记录

A. SELECT TABLE_NAME,TABLE_TYPE FROM

( SELECT ROWNUM ROWSEQ,TABLE_NAME,TABLE_TYPE FROM CAT ) WHERE ROWSEQ BETWEEN N1+1 AND N2; 或:

SELECT * FROM CAT WHERE ROWNUM<=N2 MINUS

SELECT * FROM CAT WHERE ROWNUM

B. SELECT TABLE_NAME,TABLE_TYPE FROM ( SELECT ROWNUM ROWSEQ,TABLE_NAME,TABLE_TYPE FROM CAT ORDER BY TABLE_TYPE) WHERE ROWSEQ BETWEEN N1+1 AND N2;

查主键名称:

select * from user_constraints where table_name = 'ART' and constraint_type ='P';

保存过程内容到文件 先修改init.ora 例如:

utl_file_dir=/usr //路径为 oracle所在的盘:/usr

此过程将用户TEMP的P1过程的代码保存到ORACLE安装盘下/USR/TEXT.TXT中 create or replace procedure TEST is

file_handle utl_file.file_type; STOR_TEXT VARCHAR2(4000); N NUMBER; I NUMBER;

begin I:=1;

SELECT MAX(LINE) INTO N FROM ALL_SOURCE WHERE OWNER='TEMP' AND NAME='P1'; file_handle:=utl_file.fopen('/usr','test.txt','a'); WHILE I<=N LOOP

SELECT TEXT INTO STOR_TEXT FROM ALL_SOURCE WHERE OWNER='TEMP' AND NAME='P1' AND LINE= I; I:=I+1;

utl_file.put_line(file_handle,stor_text); END LOOP;

utl_file.fclose(file_handle); commit; end TEST; /

0、建立分区表

create table partition_test (

id number(9),

tmpStr varchar2(10) )

partition by range(id) (

partition id01 values less than (3000000) tablespace test_tabspc1, partition id02 values less than (6000000) tablespace test_tabspc2, partition id03 values less than (9000000) tablespace test_tabspc3, partition id04 values less than (12000000) tablespace test_tabspc4, partition id05 values less than (MAXVALUE) tablespace test_tabspc5 ) /

1、建立局部分区索引

Create index your_index on caishui.partition_test(id) local (

partition id01 tablespace test_tabspc1, partition id02 tablespace test_tabspc2, partition id03 tablespace test_tabspc3, partition id04 tablespace test_tabspc4, partition id05 tablespace test_tabspc5 ) /

2、重建某一个分区的索引

alter index your_index rebuild partition id01 tablespace test_tabspc1 /

3、增加分区

alter table caishui.partition_test

add partition id06 values less than (15000000) tablespace test_tabspc6 /

4、有影响

5、可以

ALTER TABLE PARTITION_TEST MERGE PARTITIONS id01, id02

INTO PARTITION 新分区名 /

6、外部数据文件 d:\\test.txt 1|猪八戒 2|孙悟空 3|唐僧

建一个控制文件 d:\\test.ctl load data

infile 'd:\\test.txt' append

into table partition_test FIELDS TERMINATED BY \(id,tmpStr)

将数据文件的数据导入数据库

sqlldr userid=caishui/password control=d:\\test.ctl

如何正确利用Rownum来限制查询所返回的行数?

软件环境:

1、Windows NT4.0+ORACLE 8.0.4 2、ORACLE安装路径为:C:\\ORANT

含义解释:

1、rownum是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,

依此类推,这个伪字段可以用于限制查询返回的总行数。 2、rownum不能以任何基表的名称作为前缀。

使用方法:

现有一个商品销售表sale,表结构为: month char(6) --月份

sell number(10,2) --月销售金额

create table sale (month char(6),sell number); insert into sale values('200001',1000); insert into sale values('200002',1100); insert into sale values('200003',1200); insert into sale values('200004',1300); insert into sale values('200005',1400); insert into sale values('200006',1500); insert into sale values('200007',1600); insert into sale values('200101',1100); insert into sale values('200202',1200); insert into sale values('200301',1300); insert into sale values('200008',1000); commit;

SQL> select rownum,month,sell from sale where rownum=1;(可以用在限制返回记录条数的地方,保证不出错,如:隐式游标)

ROWNUM MONTH SELL

--------- ------ --------- 1 200001 1000

SQL> select rownum,month,sell from sale where rownum=2;(1以上都查不到记录)

没有查到记录

SQL> select rownum,month,sell from sale where rownum>5;

(由于rownum是一个总是从1开始的伪列,Oracle 认为这种条件不成立,查不到记录)

没有查到记录

只返回前3条纪录

SQL> select rownum,month,sell from sale where rownum<4;

ROWNUM MONTH SELL

--------- ------ --------- 1 200001 1000

2 200002 1100 3 200003 1200

如何用rownum实现大于、小于逻辑?(返回rownum在4—10之间的数据)(minus操作,速度会受影响)

SQL> select rownum,month,sell from sale where rownum<10 2 minus

3 select rownum,month,sell from sale where rownum<5;

ROWNUM MONTH SELL

--------- ------ --------- 5 200005 1400 6 200006 1500 7 200007 1600 8 200101 1100 9 200202 1200

想按日期排序,并且用rownum标出正确序号(有小到大)

SQL> select rownum,month,sell from sale order by month;

ROWNUM MONTH SELL

--------- ------ --------- 1 200001 1000 2 200002 1100 3 200003 1200 4 200004 1300 5 200005 1400 6 200006 1500 7 200007 1600 11 200008 1000 8 200101 1100 9 200202 1200 10 200301 1300

查询到11记录.

可以发现,rownum并没有实现我们的意图,系统是按照记录入库时的顺序给记录排的号,rowid也是顺序分配的

SQL> select rowid,rownum,month,sell from sale order by rowid;

ROWID ROWNUM MONTH SELL

------------------ --------- ------ ---------

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库sql精华收集(2)在线全文阅读。

sql精华收集(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/508713.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: