静·谧——Last Winner
置顶
教你如何干掉crs.exe
Music Poster
Oracle层次查询和分析函数在号段选取中的应用
请教如何由父子关系得到祖先的关系?
手工查杀 熊猫烧香 病毒的方法
知道号段起止,如何选择该号段内的所有号码?
ITPUB/IXPUB 徽章排列工具
公告
教你如何干掉crs.exe
手工查杀 熊猫烧香 病毒的方法
===========================================================
===========================================================
一句SQL实现输出九九乘法表
lastwinner 发表于:2007.10.27 16:25 ::分类: ( Oracle ) ::阅读:(322次) :: 评论 (0)
===========================================================
===========================================================

Oracle层次查询和分析函数

在号段选取中的应用

作者:lastwinner
BLOG:http://lastwinner.itpub.net

摘要

一组连续的数,去掉中间一些数,如何求出剩下的数的区间(即号段)?知道号段的起止,如何求出该号段内所有的数?知道一个大的号段范围和已经取过的号段,如何求出可用的号段?利用Oracle提供的强大的查询功能以及分析函数,我们可以很轻松的解决上述问题。

n 关键词:

号段选取、连续数、断点、层次查询、分析函数、connect byrownumlevelleadlag

 查看全文
lastwinner 发表于:2007.02.05 20:13 ::分类: ( Oracle , ) ::阅读:(1657次) :: 评论 (7)
===========================================================
===========================================================

如何得到各年度销售额最大的季度(同一年中销售额出现两个相同最大的,取最大季度)

(1)表结构
create table t(
year number(4) not null, --年度
s1 number, -- 一季度销售额
s2 number, -- 二季度销售额
s3 number, -- 三季度销售额
s4 number -- 四季度销售额
);
insert into t values(2001,120,130,100,140);
insert into t values(2002,180,130,180,140);
select * from t;
YEAR S1 S2 S3 S4
---------- ---------- ---------- ---------- ----------
2001 120 130 100 140
2002 180 130 180 140

 查看全文
lastwinner 发表于:2007.01.13 22:39 ::分类: ( Oracle ) ::阅读:(295次) :: 评论 (0)
===========================================================
===========================================================

请教如何由父子关系得到祖先的关系?

一个很棘手的问题,
有一张表是描述父子关系的,例如:

id, parentid 数据有
--------------------------------
a, b
b, c
c, d

现在需求是由这个父子关系得到祖先的层次关系,即把这个内容的父亲,爷爷,…… 都要找出来.

 查看全文
lastwinner 发表于:2007.01.13 22:03 ::分类: ( Oracle , ) ::阅读:(635次) :: 评论 (0)
===========================================================
===========================================================

有表如下:
CREATE TABLE T20
(
ID NUMBER(2),
S NUMBER(5),
E NUMBER(5)
);

INSERT INTO T20 ( ID, S, E ) VALUES (
1, 10, 11);
INSERT INTO T20 ( ID, S, E ) VALUES (
2, 1, 5);
INSERT INTO T20 ( ID, S, E ) VALUES (
3, 88, 100);
COMMIT;

 查看全文
lastwinner 发表于:2007.01.07 15:28 ::分类: ( Oracle , ) ::阅读:(468次) :: 评论 (0)
===========================================================
===========================================================

五一期间终于有时间活动一下脑子了,用了新方法解决的(思路是去年11月想出来的,汗一个先)

前期的解法参见: http://lastwinner.itpub.net/post/7102/42711
原文讨论地址: http://www.itpub.net/402971,2.html

 查看全文
lastwinner 发表于:2006.05.24 15:16 ::分类: ( Oracle , ) ::阅读:(1222次) :: 评论 (3)
===========================================================
===========================================================

求元音字母['a', 'e', 'i', 'o', 'u']在单词中第一次出现的位置. 没有时,为'0',如:
you(= 2), by (= 0), translate (= 3), i (= 1), Other (= 1)等, 要求用SQL实现!

测试用例:

create table test (word varchar2(30));

insert into test values('A');
insert into test values('quick');
insert into test values('brown');
insert into test values('fox');
insert into test values('jumps');
insert into test values('over');
insert into test values('the');
insert into test values('laze');
insert into test values('dog');
insert into test values('by');
insert into test values('my');

原帖地址:http://www.itpub.net/539893.html

 查看全文
lastwinner 发表于:2006.05.03 23:29 ::分类: ( Oracle ) ::阅读:(498次) :: 评论 (0)
===========================================================
===========================================================

数据按日期排正序,若有连续的col2,则取最小日期及col2显示
否则,显示日期和col2
表数据为:
2000/01/02 A
2000/04/01 A
2003/01/01 B
2004/02/03 B
2005/02/02 C
2006/01/01 A

SQL语句的结果为:
2000/01/02 A
2003/01/01 B
2005/02/02 C
2006/01/01 A

 查看全文
lastwinner 发表于:2006.01.20 21:09 ::分类: ( Oracle ) ::阅读:(749次) :: 评论 (2)
===========================================================
===========================================================

这个好像这两个问题的逆问题
http://blog.itpub.net/post/7102/44843
http://blog.itpub.net/post/7102/48132


表A结构:
bill_type_id varchar2(1),
bill_start number,
bill_end number,
office_level varchar2(4)
数据如下:
A 0 999 1
A 0 199 2
A 300 499 2
A 700 799 2
sql目的是取出包含在level1级别里的,还没有录入level2级别的号段,各位大侠有好方法,请告知小弟.最好是一个sql语句实现,谢谢!

原文地址:http://www.itpub.net/480536.html

 查看全文
lastwinner 发表于:2006.01.16 23:59 ::分类: ( Oracle , ) ::阅读:(2172次) :: 评论 (2)
===========================================================
===========================================================

&会用来提示用户输入这个变量代表的值,但有时&其实只是一个字符,比如在脚本的insert语句中含有&/存储过程中含有&字符,执行这些脚本时就会出现不期望的情况,那该怎么办呢?

原文地址:http://www.itpub.net/showthread.php?threadid=371122

 查看全文
lastwinner 发表于:2005.12.26 22:13 ::分类: ( Oracle ) ::阅读:(497次) :: 评论 (0)
===========================================================
===========================================================

jackywood原创,lastwinner小做修改:)

原文地址:http://www.itpub.net/469543.html

 查看全文
lastwinner 发表于:2005.12.25 23:58 ::分类: ( Oracle , ) ::阅读:(2001次) :: 评论 (2)
===========================================================
===========================================================
两表做关联,其中包含connect by子句,以关联字段作为条件去查询,结果显示不正确。改成先connect by,再做两表关联,然后以关联字段去做查询,就不会出现这个问题了 。
文章发表地址:http://www.itpub.net/470311.html
 查看全文
lastwinner 发表于:2005.12.23 16:24 ::分类: ( Oracle , ) ::阅读:(560次) :: 评论 (0)
===========================================================
===========================================================
在3*3的九宫格内,用1,2,3,4,5,6,7,8,9的九个数字填入九宫格内,使得每行数字组成的十进制数平方根为整数。(一道java题) 查看全文
lastwinner 发表于:2005.12.19 19:21 ::分类: ( Oracle , Java ) ::阅读:(3189次) :: 评论 (1)
===========================================================
===========================================================

根据标志位获得设备发生故障时间和恢复故障时间的列表
http://www.itpub.net/464005.html

另外此文也可参考http://www.itpub.net/167645.html

 查看全文
lastwinner 发表于:2005.12.09 22:14 ::分类: ( Oracle , ) ::阅读:(876次) :: 评论 (2)
===========================================================
===========================================================

此文应与http://blog.itpub.net/post/7102/44843对比阅读
相关文章:http://lastwinner.itpub.net/post/7102/248528

问题求助,请高手指点..

我有一个表结构,
fphm,kshm
2014,00000001
2014,00000002
2014,00000003
2014,00000004
2014,00000005
2014,00000007
2014,00000008
2014,00000009
2013,00000120
2013,00000121
2013,00000122
2013,00000124
2013,00000125

(第二个字段内可能是连续的数据,可能存在断点。)

怎样能查询出来这样的结果,查询出连续的记录来。
就像下面的这样?
2014,00000001,00000005
2014,00000009,00000007
2013,00000120,00000122
2013,00000124,00000125

http://www.itpub.net/354052.html

 查看全文
lastwinner 发表于:2005.12.09 20:26 ::分类: ( Oracle , ) ::阅读:(2702次) :: 评论 (3)
===========================================================
===========================================================
SQL> select * from x;

C1 C2
---------- ----------
11111 1
22222 2
33333 3
44444 4
 查看全文
lastwinner 发表于:2005.11.26 21:23 ::分类: ( Oracle ) ::阅读:(797次) :: 评论 (2)
===========================================================
===========================================================

已有试卷正确答案(如:abbaddccbaba……)和学生答案(如:abbabbaa……)以及某几道题号如(1,2,5,7,10……)的条件下求学生在这几道题上的正确率

参见:http://www.itpub.net/355415,2.html

 查看全文
lastwinner 发表于:2005.11.26 16:55 ::分类: ( Oracle , ) ::阅读:(685次) :: 评论 (0)
===========================================================
===========================================================

SQL> select c2 from test;

C2
----------------------------------------
a,b,c,dd,efg
h,iii

select decode(lvl, 1, substr(c2, 1, instr(c2, ',', 1) - 1),
length(c2) - length(replace(c2, ',')) + 1, substr(c2, instr(c2, ',', 1, lvl-1)+1),
substr(c2, instr(c2, ',', 1, lvl-1) + 1, instr(c2, ',', 1, lvl) - instr(c2, ',', 1, lvl-1) -1))
what_you_need
from
( select level lvl
from (select data_length from user_tab_columns where table_name = 'TEST'
and column_name = 'C2')
connect by 1=1
and level <= data_length
),
test
where lvl < length(c2) - length(replace(c2, ',')) + 2
/

WHAT_YOU_NEED
-------------
a
b
c
dd
efg
h
iii

Written on 2005/03/13

 查看全文
lastwinner 发表于:2005.11.26 16:49 ::分类: ( Oracle , ) ::阅读:(1321次) :: 评论 (9)
===========================================================
===========================================================

今日学到一招,构造N个连续的数,不必从all_objects等视图中取,因为我们不知道N的具体大小,如果N超过了select count(*) from all_objects,那就得使用其他方式来实现了,一个巧妙的方法是这样的:

SQL> select * from (select rownum from dual connect by rownum<&N);
输入 n 的值: 6
原值 1: select * from (select rownum from dual connect by rownum<&N)
新值 1: select * from (select rownum from dual connect by rownum<6)

ROWNUM
----------
1
2
3
4
5

这个方法真好,准备对以前写过的相关rownum的sql文章增加评论,用这种巧妙的方法去构造N个数,解决一些隐形存在的问题。

其实这个方法很早就看到过,只是当时没有细细体会-V-


lastwinner 发表于:2005.11.23 15:53 ::分类: ( Oracle ) ::阅读:(827次) :: 评论 (3)
===========================================================
===========================================================

开发中常常会用到一个表的字段组成的字符串,通常是用逗号分隔的一个列表,例如C_DM, C_MC, N_YXX
以前都是desc 表,然后将列名复制粘贴到Word里,然后用查找替换的方式将回车替换成“,”或者其他分隔符来做到,现在用sql来得到

select str from (
select str, rank()over(order by length(str) desc) rk from (
select sys_connect_by_path(column_name,'&Prefix') str from (
select s.*, rank()over(order by column_id desc) rn from user_tab_cols s where s.table_name=upper('&x') )
connect by rn = prior rn-1)
) where rk=1;

运行时输入前缀和表名即可,表名不区分大小写,对生成的字符串去掉最前面的分隔符即可


lastwinner 发表于:2005.11.23 15:37 ::分类: ( Oracle ) ::阅读:(931次) :: 评论 (2)
===========================================================
===========================================================

原来在对含有connect by子句的多表关联的视图做查询时(以某个字段为条件进行查询),也碰到过问题——结果记录显示不正确(比如直接在视图里看到满足条件的记录就两个,可用sql去查却能查出多了好些)
c是含有connect by子句的多表关联查询语句

代码:

select count
(*) from c -->结果为15
select count
(*) from c where field1='123'-> 结果为27
。。。。。。。。。


后来改成含connect by的子句不做多表关联查询,只做单表查询,再将查询的结果做多表关联。这样就解决了问题。

具体模拟实例有空再贴


lastwinner 发表于:2005.11.23 15:21 ::分类: ( Oracle , ) ::阅读:(617次) :: 评论 (0)
===========================================================
===========================================================

Bug2: FULL OUTER JOIN = LEFT OUTER JOIN

奇怪的是,如果将
select a.*,b.mc MC1, c.mc MC2
from ts a,tdm b, tdm c
where A.dm1 = B.DM(+) AND B.type(+)='1'
and A.dm2 = c.DM(+) AND c.type(+)='2'
创建为视图
create view vts as select a.*,b.mc MC1, c.mc MC2
from ts a,tdm b, tdm c
where A.dm1 = B.DM(+) AND B.type(+)='1'
and A.dm2 = c.DM(+) AND c.type(+)='2'
/
则下面的查询结果就是正确的

 查看全文

lastwinner 发表于:2005.11.23 15:17 ::分类: ( Oracle , ) ::阅读:(767次) :: 评论 (0)
===========================================================
===========================================================
BUG描述:FULL OUTER JOIN <> LEFT OUTER JOIN UNION RIGHT OUTER JOIN
不知道Oracle网站上有没有相关描述,我在网上相关信息只搜索到left outer join可使用户可以查询任何表

我的数据库服务器环境:OS:Windows 2000 Server DB:Oracle 9.2.0.1
测试请写出你的数据库服务器环境
 查看全文
lastwinner 发表于:2005.11.23 15:08 ::分类: ( Oracle , ) ::阅读:(856次) :: 评论 (0)
===========================================================
===========================================================

继续问题解答

 查看全文
lastwinner 发表于:2005.11.12 16:57 ::分类: ( Oracle ) ::阅读:(870次) :: 评论 (0)
===========================================================
===========================================================

有一张电话通话记录的表,字段有:id,主叫号码caller,被叫号码callee,开始时间begintime,结束时间endtime。
请问如何查询出N分钟内同一主叫拨打同一被叫次数超过M次的这些用户??

http://www.itpub.net/450873.html

 查看全文
lastwinner 发表于:2005.11.11 22:48 ::分类: ( Oracle ) ::阅读:(452次) :: 评论 (0)
===========================================================
===========================================================

原文地址: http://www.itpub.net/443352.html
原文发表者:zhyuh

REF CURSOR 小结

利用REF CURSOR,可以在程序间传递结果集(一个程序里打开游标变量,在另外的程序里处理数据)。
也可以利用REF CURSOR实现BULK SQL,提高SQL性能。


REF CURSOR分两种,Strong REF CURSOR 和 Weak REF CURSOR。


Strong REF CURSOR:指定retrun type,CURSOR变量的类型必须和return type一致。
DECLARE
TYPE strongcurtyp IS REF CURSOR RETURN emp%ROWTYPE;
emp_cv strongcurtyp;


Weak REF CURSOR:不指定return type,能和任何类型的CURSOR变量匹配。
DECLARE
TYPE weakcurtyp IS REF CURSOR;
weak_cv weakcurtyp;
any_cv SYS_REFCURSOR; --使用SYS_REFCURSOR可以使变量any_cv跟任何weak REF CURSOR类型匹配。

 查看全文
lastwinner 发表于:2005.11.11 21:51 ::分类: ( Oracle ) ::阅读:(525次) :: 评论 (0)
===========================================================
===========================================================

实验结果分析五

quote:


SQL> INSERT INTO TEST VALUES('东北');

1 row created.

SQL> EXIT
更改客户端字符集为ZHS16GBK
D:>SET NLS_LANG=AMERICAN_AMERICA.ZHS16GBK


D:>SQLPLUS "/ AS SYSDBA"

无法显示用US7ASCII插入的字符集,但可以显示用ZHS16GBK插入的字符集
SQL> SELECT * FROM TEST;

R1
--------------------
东北
??
东北
6+11

SQL>
疑问3:US7ASCII为ZHS16GBK的子集,为何在US7ASCII环境下插入的数据无法显示? [/B]
 查看全文
lastwinner 发表于:2005.11.11 21:46 ::分类: ( Oracle ) ::阅读:(756次) :: 评论 (0)
===========================================================
===========================================================

原文地址:http://www.itpub.net/276524.html
作者:jeffli73

经常看到一些朋友问ORACLE字符集方面的问题,我想以迭代的方式来介绍一下。

第一次迭代:掌握字符集方面的基本概念。
有些朋友可能会认为这是多此一举,但实际上正是由于对相关基本概念把握不清,才导致了诸多问题和疑问。
首先是字符集的概念。
我们知道,电子计算机最初是用来进行科学计算的(所以叫做“计算机”),但随着技术的发展,还需要计算机进行其它方面的应用处理。这就要求计算机不仅能处理数值,还能处理诸如文字、特殊符号等其它信息,而计算机本身能直接处理的只有数值信息,所以就要求对这些文字、符号信息进行数值编码,最初的字符集是我们都非常熟悉的ASCII,它是用7个二进制位来表示128个字符,而后来随着不同国家、组织的需要,出现了许许多多的字符集,如表示西欧字符的ISO8859系列的字符集,表示汉字的GB2312-80、GBK等字符集。

 查看全文
lastwinner 发表于:2005.11.11 21:39 ::分类: ( Oracle ) ::阅读:(499次) :: 评论 (0)
===========================================================
===========================================================

假设表TTT中没有重复的数字,现在要获得其中最小的未被使用的正整数

select nvl(max(n+1),1) minInt from (select n,n-row_number(order by n) cha from ttt) where cha=0


lastwinner 发表于:2005.11.10 10:33 ::分类: ( Oracle , ) ::阅读:(3306次) :: 评论 (0)
===========================================================
===========================================================
create table a
(class varchar2(8),
student varchar2(100),
score number(3)
)
class 代表班,应该有一班,二班,三班...
student学生
score分数

有多个班,每个班有多名同学

现在想查询并显示每个班分数前的15%名的同学名单,请问该如何写查询语句
 查看全文
lastwinner 发表于:2005.11.07 22:05 ::分类: ( Oracle ) ::阅读:(910次) :: 评论 (6)
===========================================================
===========================================================

RollingPig的回答

select trunc(sysdate, 'D') - 3 from dual;
trunc(sysdate, 'D'), 截取到本周的第一天(0:00)
trunc(sysdate, 'M'), 截取到本月的第一天(0:00)
trunc(sysdate, 'DD'), 截取到本日的0:00


在我们大多数人的国家语言设置中, 每周的第一天是周日.

 查看全文
lastwinner 发表于:2005.11.04 17:48 ::分类: ( Oracle ) ::阅读:(545次) :: 评论 (0)
===========================================================
===========================================================

此文应与http://blog.itpub.net/post/7102/48132对比阅读
相关文章:http://lastwinner.itpub.net/post/7102/248528

问题的提出:

table T,列:serial_no
我想能够查询一下serial_no这个字段的不连续的值。
例如:
serial_no
1
2
3
4
6
8
9
10
我想一个sql语句查出来缺失的号码,
显示结果为:
5
7
http://www.itpub.net/435578.html

 查看全文
lastwinner 发表于:2005.11.04 17:42 ::分类: ( Oracle , ) ::阅读:(3140次) :: 评论 (8)
===========================================================
===========================================================

以8月为界,例如2005年8月1日,之前的在校学生入学年份为2001~2004,之后的为2002~2005

 查看全文
lastwinner 发表于:2005.11.04 15:33 ::分类: ( Oracle ) ::阅读:(468次) :: 评论 (1)
===========================================================
===========================================================

1、SELECT SYS_GUID() FROM DUAL;
2、
select replace(s,'/','') s from (
select s,rank()over(order by length(s) desc) rk from(
select (sys_connect_by_path(a,'/')) s from (
select decode(floor(dbms_random.value*16),0,'0',1,'1',2,'2',3,'3', 4,'4',5,'5',6,'6',7,'7',8,'8',9,'9', 10,'A',11,'B',12,'C',13,'D',14,'E',15,'F') a
,rownum rn from all_objects
where rownum<=32
) connect by rn-1=prior rn
) )where rk=1
lastwinner 发表于:2005.11.04 15:14 ::分类: ( Oracle ) ::阅读:(527次) :: 评论 (1)
===========================================================
===========================================================
把以下脚本加入到glogin.sql中
可将普通的SQL >提示符换成当前 '连接用户@数据库名 >' 的模式
便于经常在多个数据库中、多个用户来回切换的同学使用 查看全文
lastwinner 发表于:2005.11.04 00:00 ::分类: ( Oracle , ) ::阅读:(560次) :: 评论 (1)
===========================================================
===========================================================
http://www.itpub.net/105327.html 查看全文
lastwinner 发表于:2005.10.13 19:38 ::分类: ( Oracle ) ::阅读:(485次) :: 评论 (0)
===========================================================
===========================================================

问题的提出有一個字符串﹐類似AAAAA123.456A(AA)A﹐如何用一句SQL將123.456提出來?
A指的是不同的漢字,咋辦?

 查看全文
lastwinner 发表于:2005.10.13 16:32 ::分类: ( Oracle , ) ::阅读:(1319次) :: 评论 (2)
===========================================================
===========================================================

转载自Oracle Magazine -Tips 2003

可能这就是Oracle的work_days函数的算法吧

Calculating Working Days Without Using a Function

This tip comes from Mike Selvaggio, Senior DB Architect and DBA at Orsel Consulting Inc. in North Brunswick, NJ.

 查看全文
lastwinner 发表于:2005.10.13 13:48 ::分类: ( Oracle ) ::阅读:(634次) :: 评论 (0)
===========================================================
===========================================================

问题的提出

Oracle Database 有一个View as: User_Ind_Columns;

its data as:
Index_Name Table_Name Column_Name Column_Position
-------------------- ------------------- ------------------------ ------------------------
Ind_01 BOMITEM PRID 1
Ind_02 BOMITEM PRID 1
Ind_02 BOMITEM ITEM 2
Ind_03 X_ITEM01 MITM 1
Ind_03 X_ITEM01 ITEM 2
Ind_03 X_ITEM01 Postion 3

..........................


Output as:

Create index ind_01 on bomitem(prid)
Create index ind_02 on bomitem(prid,item)
create index ind_03 on X_ITEM01(MITM,ITEM,Postion)

 查看全文
lastwinner 发表于:2005.10.10 15:48 ::分类: ( Oracle , ) ::阅读:(2427次) :: 评论 (0)
===========================================================
===========================================================

借用biti_rainy的方法
整数:
select 1 from dual where ltrim(&a,'0123456789') is null;

 查看全文
lastwinner 发表于:2005.10.10 15:48 ::分类: ( Oracle , ) ::阅读:(898次) :: 评论 (0)
===========================================================
===========================================================

最近在论坛上,经常会看到关于分组后字段拼接的问题,
大概是类似下列的情形:
SQL> select no,q from test
2 /

NO Q
---------- ------------------------------
001 n1
001 n2
001 n3
001 n4
001 n5
002 m1
003 t1
003 t2
003 t3
003 t4
003 t5
003 t6

12 rows selected

最后要得到类似于如下的结果:
001 n1;n2;n3;n4;n5
002 m1
003 t1;t2;t3;t4;t5;t6

 查看全文
lastwinner 发表于:2005.10.10 15:21 ::分类: ( Oracle , ) ::阅读:(1767次) :: 评论 (3)
===========================================================
===========================================================

现在有一张表,记录着各种食物的名称、营养指标以及可以预防治疗的疾病,表结构如下:
CREATE TABLE SWYY
(
C_SW VARCHAR2(30) NOT NULL,
C_YYZB VARCHAR2(200) ,
C_YFJB VARCHAR2(200)
);


ALTER TABLE SWYY ADD (
PRIMARY KEY
(C_SW));

新方法参见:http://lastwinner.itpub.net/post/7102/101872

 查看全文
lastwinner 发表于:2005.10.10 14:57 ::分类: ( Oracle , ) ::阅读:(2459次) :: 评论 (5)
===========================================================
===========================================================

这个也许不算什么秘密, 很多人大概都知道, 不过用过的人也许不多.

在8.1.7版本(也许是816? 不太确定)以后, sql*plus中有一个set markup html的命令, 可以将sql*plus的输出以html格式展现.

 查看全文
lastwinner 发表于:2005.10.10 14:43 ::分类: ( Oracle ) ::阅读:(491次) :: 评论 (0)
===========================================================
===========================================================

有没有过这样的经历? 在sql*plus中敲了很长的命令后, 突然发现想不起某个列的名字了, 如果取消当前的命令,待查询后再重敲, 那太痛苦了. 当然你可以另开一个sql*plus窗口进行查询, 但这里提供的方法更简单.

 查看全文
lastwinner 发表于:2005.10.10 14:41 ::分类: ( Oracle ) ::阅读:(399次) :: 评论 (0)
===========================================================
===========================================================

Sql*plus中, 不允许sql语句中间有空行, 这在从其它地方拷贝脚本到sql*plus中执行时很麻烦. 比如下面的脚本:

 查看全文
lastwinner 发表于:2005.10.10 14:39 ::分类: ( Oracle ) ::阅读:(394次) :: 评论 (0)
===========================================================
===========================================================

1. AVAILABILITY

Windows NT has been existence since 1993. It runs on two processor
architectures: Intel X86 (needs Pentium) and Digital Alpha AXP.
The Windows NT operating system is only available from Microsoft.

UNIX has been in existence since 1972: previous versions did exist,
but they were written in PDP assembly language, rather than C. UNIX
runs on most hardware architectures and versions are supplied by
many vendors, most notably Sun, HP, IBM, Digital, Sequent, Data
General, NCR and SCO.

 查看全文
lastwinner 发表于:2005.10.10 14:17 ::分类: ( Oracle ) ::阅读:(409次) :: 评论 (0)
===========================================================
===========================================================

有没有为了dbms_output.put_line会"吃掉"最前面的空格而苦恼?

 查看全文
lastwinner 发表于:2005.10.10 14:17 ::分类: ( Oracle ) ::阅读:(433次) :: 评论 (0)
===========================================================
===========================================================
sqlldr userid=lgone/tiger control=a.ctl
LOAD DATA
INFILE 't.dat' // 要导入的文件
// INFILE 'tt.date' // 导入多个文件
// INFILE * // 要导入的内容就在control文件里 下面的BEGINDATA后面就是导入的内容

INTO TABLE table_name // 指定装入的表
BADFILE 'c:bad.txt' // 指定坏文件地址

************* 以下是4种装入表的方式
APPEND // 原先的表有数据 就加在后面
// INSERT // 装载空表 如果原先的表有数据 sqlloader会停止 默认值
// REPLACE // 原先的表有数据 原先的数据会全部删除
// TRUNCATE // 指定的内容和replace的相同 会用truncate语句删除现存数据

************* 指定的TERMINATED可以在表的开头 也可在表的内部字段部分
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
// 装载这种数据: 10,lg,"""lg""","lg,lg"
// 在表中结果: 10 lg "lg" lg,lg
// TERMINATED BY X '09' // 以十六进制格式 '09' 表示的
// TERMINATED BY WRITESPACE // 装载这种数据: 10 lg lg 查看全文
lastwinner 发表于:2005.10.10 13:35 ::分类: ( Oracle ) ::阅读:(691次) :: 评论 (0)
===========================================================
===========================================================
阅读本文档之前,建议先看“http://blog.itpub.net/post/7102/42594”一文,

Sql*plus中蕴藏着好多技巧,如果掌握这些技巧,对于在oracle数据库下进行快速开发与有效维护数据库都是有益的。 查看全文
lastwinner 发表于:2005.10.09 18:34 ::分类: ( Oracle ) ::阅读:(557次) :: 评论 (1)
===========================================================
===========================================================

Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。
我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。
除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。
下面就介绍一下一些常用的sql*plus命令: 查看全文
lastwinner 发表于:2005.10.09 12:51 ::分类: ( Oracle ) ::阅读:(495次) :: 评论 (0)
自我介绍
切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...