??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品成a人在线观看,亚洲男人天堂2018av,国产成人亚洲综合一区http://www.tkk7.com/liudawei/articles/362867.html孤飞?/dc:creator>孤飞?/author>Sat, 05 Nov 2011 15:56:00 GMThttp://www.tkk7.com/liudawei/articles/362867.htmlhttp://www.tkk7.com/liudawei/comments/362867.htmlhttp://www.tkk7.com/liudawei/articles/362867.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/362867.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/362867.html问题Q很多资料都说不支持>,>=,=,between...andQ只能用以上W号(<?lt;=?=)Qƈ非说?gt;,>=,=,between..and
时会提示SQL语法错误Q而是l常是查不出一条记录来Q还会出C乎是莫名其妙的结果来Q其实您只要理解好了q个 rownum
伪列的意义就不应该感到惊奇,同样是伪列,rownum ?rowid 可有些不一P下面以例子说?br />

假设某个?t1(c1) ?20 条记?/p>

如果?select rownum,c1 from t1 where rownum < 10,
只要是用于P查出来的l果很容易地与一般理解在概念上能达成一_应该不会有Q何疑问的?/p>

可如果用 select rownum,c1 from t1 where rownum > 10
(如果写下q样的查询语句,q时候在您的头脑中应该是惛_到表中后?0条记?Q你׃发现Q显C出来的l果要让您失望了Q也许您q会怀疑是不谁删了一些记录,然后查看记录敎ͼ仍然?
20 条啊Q那问题是出在哪呢?


先好好理?rownum 的意义吧。因为ROWNUM是对l果集加的一个伪列,卛_查到l果集之后再加上ȝ一个列 (Q先要有l果?。简单的?
rownum 是对W合条gl果的序列号。它L?开始排L。所以你选出的结果不可能没有1Q而有其他大于1的倹{所以您没办法期望得C面的l果集:


11 aaaaaaaa
12 bbbbbbb
13 ccccccc
.................


rownum >10 没有记录Q因为第一条不满L的话Q第二条的ROWNUM又成?Q所以永q没有满x件的记录。或者可以这L解:


ROWNUM是一个序列,是oracle数据库从数据文g或缓冲区中读取数据的序。它取得W一条记录则rownumgؓ1Q第二条?Q依ơ类推。如果你?gt;,>=,=,between...andq些条gQ因Z~冲区或数据文g中得到的W一条记录的rownum?Q则被删除,接着取下条,可是它的rownumq是1Q又被删除,依次cLQ便没有了数据?/p>

有了以上从不同方面徏立v来的?rownum 的概念,那我们可以来认识使用 rownum 的几U现?/p>

1. select rownum,c1 from t1 where rownum != 10 Z是返回前9条数据呢Q它?select
rownum,c1 from tablename where rownum < 10 q回的结果集是一L呢?
因ؓ是在查询到结果集后,昄完第 9
条记录后Q之后的记录也都?!= 10,或?>=10,所以只昄前面9条记录。也可以q样理解Qrownum ?后的记录?rownum?0Q因条g?
!=10Q所以去掉,其后记录补上Qrownum又是10Q也LQ如果下M只会显C前?条记录了


2. Z?rownum >1 时查不到一条记录,?rownum >0 ?rownum >=1 却LC所以的记录
因ؓ
rownum 是在查询到的l果集后加上ȝQ它L?开?/p>

3. Z?between 1 and 10 或?between 0 and 10 能查到结果,而用 between 2 and 10
却得不到l果
原因同上一P因ؓ rownum L?1 开?/p>

从上可以看出QQ何时候想?rownum = 1 q条记录抛弃是不对的Q它在结果集中是不可或缺的,了rownum=1 像IZ楼阁一般不能存在,所以你?
rownum 条g要包含到 1


但如果就是想要用 rownum > 10 q种条g的话话就要用嵌套语句,?rownum 先生成,然后对他q行查询?br />select *

from (selet rownum as rnQt1.* from a where ...)
where rn >10


一般代码中对结果集q行分页是q么q的?/p>

另外Qrowid ?rownum 虽都被称Z列,但它们的存在方式是不一LQrowid
可以说是物理存在的,表示记录在表I间中的唯一位置IDQ在DB中唯一。只要记录没被搬动过Qrowid是不变的。rowid 相对于表来说又像表中的一般列Q所以以
rowid 为条件就不会?rownum那些情况发生?br />另外q要注意Qrownum不能以Q何基表的名称作ؓ前缀?/p>



]]>
left join如何去除重复数据http://www.tkk7.com/liudawei/articles/362593.html孤飞?/dc:creator>孤飞?/author>Thu, 03 Nov 2011 02:52:00 GMThttp://www.tkk7.com/liudawei/articles/362593.htmlhttp://www.tkk7.com/liudawei/comments/362593.htmlhttp://www.tkk7.com/liudawei/articles/362593.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/362593.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/362593.html
--大概思\Q如果是从主表一直left join 子表 ,distinct业务层次最底层的子表ID
--wz_xqjhd 物资需求计划单
--wz_zbbd 物资招标标段
--WZ_ZBBDQB 招标标段{报
--wz_yzbfa 物资预中标方?/span>
--wz_qbzb 物资{报主表
--wz_zbjg 物资中标l果
--jhtm 计划条目
--jhtmfp 计划条目分配
--以上表关p?Qwz_xqjhd(1:n)wz_zbbd  wz_xqjhd(1:n) wz_zbjg
-- wz_yzbfa(1:n)wz_zbbd  wz_qbzb(1:n)WZ_ZBBDQB  wz_zbbd(1:n)WZ_ZBBDQB  WZ_ZBBDQB相当于中间表
-- wz_xqjhd(1:n) wz_zbjg
-- jhtmfp 为wz_jhtm与wz_zbbd的中间表
-- wz_jhtm 条目一?相当于是业务的最低层 q个时候可以distinct去过滤最底层数据
select distinct(jhtm.jhtm_id) ,xqjhd.*,zbbd.*,jhtm.* from wz_xqjhd xqjhd
    left join wz_zbbd zbbd on zbbd.xqjhd_id = xqjhd.xqjhd_id
    left join WZ_ZBBDQB zbbdqb on zbbdqb.zbbd_id=zbbd.zbbd_id
    left join wz_yzbfa yzbfa on yzbfa.yzbfa_id=zbbd.yzbfa_id
    left join wz_qbzb qbzb on qbzb.qb_id=zbbdqb.dbqb_id
    left join wz_zbjg zbjg on zbjg.Xqjhd_Id=xqjhd.xqjhd_id
    left join wz_jhtm jhtm on jhtm.xqjhd_id=xqjhd.xqjhd_id
    left join wz_jhtmfp jhtmfp on jhtmfp.jhtm_id=jhtm.jhtm_id and jhtmfp.zbbd_id=zbbd.zbbd_id;

以上是从主表兌子表 一层一层来的,下面是从子表开始:
   select distinct(jhtm.jhtm_id) ,xqjhd.*,zbbd.*,jhtm.* from wz_jhtm jhtm
    left join wz_jhtmfp jhtmfp on jhtmfp.jhtm_id=jhtm.jhtm_id 
    left join wz_zbbd zbbd on jhtmfp.zbbd_id = zbbd.zbbd_id
    left join WZ_ZBBDQB zbbdqb on zbbdqb.zbbd_id=zbbd.zbbd_id
    left join wz_yzbfa yzbfa on yzbfa.yzbfa_id=zbbd.yzbfa_id
    left join wz_qbzb qbzb on qbzb.qb_id=zbbdqb.dbqb_id
    left join wz_xqjhd xqjhd on xqjhd.xqjhd_id=jhtm.xqjhd_id
    left join wz_zbjg zbjg on zbjg.Xqjhd_Id=xqjhd.xqjhd_id

从主表开始left joinq是子表开始,具体得看业务逻辑Q参考的具体层次


]]>
ORACLE导出导入http://www.tkk7.com/liudawei/articles/362562.html孤飞?/dc:creator>孤飞?/author>Wed, 02 Nov 2011 11:42:00 GMThttp://www.tkk7.com/liudawei/articles/362562.htmlhttp://www.tkk7.com/liudawei/comments/362562.htmlhttp://www.tkk7.com/liudawei/articles/362562.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/362562.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/362562.html

一. 创徏表ƈ插入数据

SQL> create table t1 as select * from scott.dept;

Table created.

SQL> select * from t1;

    DEPTNO DNAME          LOC                                                   
---------- -------------- -------------                                         
        10 ACCOUNTING     NEW YORK                                              
        20 RESEARCH       DALLAS                                                
        30 SALES          CHICAGO                                               
        40 OPERATIONS     BOSTON   

? 导出

SQL> exp  -- 找不到该命o
SP2-0042: unknown command "exp" - rest of line ignored.
SQL> host exp  -- 在exp命o前加上host 

提示输入
username:  
scott/tiger@orcl   --如果是管理员则加?as sysdba

Enter array fetch buffer size: 4096 > 回R

Export file: Expdat.dmp > e:\testexp.dmp  -- 导出文g存放位置

(2)U(sers), or (3)(ables): (2)U > 回R -- 导出方式, q里只列出用h式和表方? 如果是以理员n? 则有三种方式, x个数据库.

Export grants (yes/no): yes > 回R --是否导出权限

Export table data (yes/no): yes >回R -- 是否导出表中数据

compress extents (yes/no): yes >回R -- 是否用压~区

...  q样把scott的所有对象导Z.



? 导入

SQL> imp  -- 找不到该命o
SP2-0042: unknown command "imp" - rest of line ignored.
SQL> host imp -- 在imp命o前加上host 

提示输入
username:  
scott/tiger@orcl   --如果是管理员则加?as sysdba

Import file: EXPDAT.DMP > e:\testexp.dmp  -- 导入文g存放位置

Enter insert buffer size (minimum is 8192) 30720) >回R

List contents of import file only(yes/no): no >回R

ignore create error due to object existence (yes/no): no > yes -- 如果对象已经存在, 则忽?br />
import grants (yes/no): yes >回R -- 是否导入权限

import table data (yes/no): yes >回R -- 是否导入表中数据

import entire export file (yes/no): no >no

username: scott -- 从哪个用户导?

Enter table(T) or partition(T:P) names. Null list means all tales for user

Enter table(T) or partition(T:P) name or . if done: t1 -- T 表示普通表, T:P 表示表空?



]]>
Oracle drop databasehttp://www.tkk7.com/liudawei/articles/362536.html孤飞?/dc:creator>孤飞?/author>Wed, 02 Nov 2011 07:24:00 GMThttp://www.tkk7.com/liudawei/articles/362536.htmlhttp://www.tkk7.com/liudawei/comments/362536.htmlhttp://www.tkk7.com/liudawei/articles/362536.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/362536.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/362536.html?0g以前Q要d删除数据库,只有两个ҎQ一个是利用DBCA囑Ş化工具删除数据库Q另外一个就是关闭数据库后,手工删除数据文g、控制文件以及日志文件的Ҏ?nbsp;

?0g开始,Oracle提供了DROP DATABASE的语法,使得数据库的删除变得非常的简单?nbsp;





不过DROP DATABASEq是有一定的限制条g的: 

SQL> conn / as sysdba 
Connected. 
SQL> drop database; 
drop database 

ERROR at line 1: 
ORA-01586: database must be mounted EXCLUSIVE and not open for this operation 


SQL> alter database close; 

Database altered. 

SQL> drop database; 
drop database 

ERROR at line 1: 
ORA-12719: operation requires database is in RESTRICTED mode 


SQL> alter system enable restricted session; 

System altered. 

SQL> drop database; 

Database dropped. 

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production 
With the Partitioning, OLAP and Data Mining options 
SQL> exit 
[oracle@bjtest ~]$ ps -ef|grep test102 
oracle 15805 14913 0 06:13 pts/1 00:00:00 grep test102 

数据库必d于MOUNT状态,且设|了RESTRICTED SESSION。执行了DROP DATABASE命o后,Oracle自动删除控制文gQ已l控制文件中记录的数据文件和在线重做日志文gQ如果数据库使用了SPFILEQ那么SPFILE文g也会删除。这个命令不会删除归文件和备䆾文g?nbsp;

在alert文g中,可以看到drop database对应的操作: 

drop database 
Mon May 18 06:13:01 2009 
Deleted file /data/oradata/test102/system01.dbf 
Deleted file /data/oradata/test102/undotbs1.dbf 
Deleted file /data/oradata/test102/sysaux01.dbf 
Deleted file /data/oradata/test102/redo01.log 
Deleted file /data/oradata/test102/redo02.log 
Deleted file /data/oradata/test102/redo03.log 
Deleted file /data/oradata/test102/redo04.log 
Deleted file /data/oradata/test102/redo05.log 
Deleted file /data/oradata/test102/redo06.log 
Deleted file /data/oradata/test102/redo07.log 
Deleted file /data/oradata/test102/temp01.dbf 
Instance terminated by USER, pid = 15795 
Deleted file /data/oradata/test102/control01.ctl 
Completed: drop database 
Mon May 18 06:13:08 2009 
Shutting down instance (abort) 
License high water mark = 1


]]>
Oracle转义字符http://www.tkk7.com/liudawei/articles/362131.html孤飞?/dc:creator>孤飞?/author>Wed, 26 Oct 2011 14:18:00 GMThttp://www.tkk7.com/liudawei/articles/362131.htmlhttp://www.tkk7.com/liudawei/comments/362131.htmlhttp://www.tkk7.com/liudawei/articles/362131.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/362131.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/362131.html1、oracle Ҏ字符 转义
关键词: oracle    转义                                          
环境Qoracle 9i  plsql
在plsql里边执行:
update userinfo set pageurl='myjsp?page=1&pagesize=10' where id='test'
q条sql语句往数据库的pageurl字段放进M一个url地址Q但是执行的时候却q那么理想Q因其中有一个oracle的特D字W,需要进行{义,那就是字W?&'.
怎么处理上例中的Ҏ字符Q?br />两个办法Q?br />       1) update userinfo set pageurl='myjsp?page=1'||'&'||'pagesize=10' where id='test'
        2) update userinfo set pageurl='myjsp?page=1'||chr(38)||'pagesize=10' where id='test'
其中||是连字符, chr(38)跟ASCII的字W{码是一致的?br />plsql中还可以set define off来关闭特D字W,q可以用show define来查看有些特D定义的字符?/div>

2、oracle 中如何{?Ҏ字符
?: 如何转义 下划U?_
select * from ng_values where name like 'lady_%'
jieguo l果昄 lady_test,lady_test,lady1
正确l果应该?lady_test,lady_test
不包?lady1
请各位给{义方?3ks
answer:
select ... from ... where ... like '/_%' escape '/';

3?br />insert into t(col) values(chr(ascii('&'))) Q?/div>
(Ҏ一)
?插入Ҏ字元'&'
SQL> SHOW DEFINE
define "&" (hex 26) ? <--- DEFINE的default值是 ‘&’
SQL> SET DEFINE OFF
SQL> SHOW DEFINE
define OFF
SQL> INSERT INTO <table_name> VALUES ('AT&T');
/
1 row created
 
(Ҏ?
SQL> SHOW ESCAPE
escape OFF <--- ESCAPE的default值是 OFF
SQL> SET ESCAPE ON
SQL> SHOW ESCAPE
escape "\" (hex 5c)
SQL> INSERT INTO temp_table VALUES ('select * from emp where ename = \&1');
1 row created.
Q?br />几个试ҎQ?br />SELECT 'myjsp?page=1&pagesize=10' FROM dual;
SELECT 'myjsp?page=1&pagesize=10' FROM dual;
 
SQL>   create   table   a   (b   varchar2(10));  
   
  Table   created  
   
  SQL>   insert   into   a   values('_a');  
   
  1   row   inserted  
   
  SQL>   select   B   from   A   where   instr(b,'_a')>0;  
   
  B  
  ----------  
  _a   
  select   B   from   A   where   b   like   '%\_a%'   escape   '\'
先启动{义符  
  set   escape   on  
  select   B   from   A   where   b   like   '%\_a%'   escape   '\';
select   B   from   A   where   b   like   '%\_a%'   escape   '\'


]]>关于navicatq接oracle ?ORA-12737 set CHS16GBK错误的解?http://www.tkk7.com/liudawei/articles/353486.html孤飞?/dc:creator>孤飞?/author>Fri, 01 Jul 2011 02:54:00 GMThttp://www.tkk7.com/liudawei/articles/353486.htmlhttp://www.tkk7.com/liudawei/comments/353486.htmlhttp://www.tkk7.com/liudawei/articles/353486.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/353486.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/353486.htmlORA-12737: Instant Client Light: unsupported server character set CHS16GBK
GoogleQ解释如下:
ORA-12737:
Instant Client Light: unsupported server character set string
Cause:     The character set specified is not allowed for this operation or is invalid. Instant Client Light has only minimal character sets.
Action:     Do not use Instant Client Light for this character set


2、首先,我们打开“tools”-->"options"菜单Q见到如下界面,依据OCI library(oci.dll) 路径Q导航到 navicat oci 目录下,备䆾里面的文Ӟ通过在该目录新徏bak文g夹,?#8220;%dir%/Navicat Lite\instantclient_10_2”路径下的所有dll文g剪切到bak文g夹)?br />


3、在oracle 客户端安装目录bin/目录下,扑ֈ如下几个.dll文g
4、将上面所列文件放|到“%dir%/Navicat Lite\instantclient_10_2” 目录下,重新启动navcat卛_?br />
5、oracle10的客Ldll文g替换地址(请复制下面地址)Q?br />http://www.tkk7.com/Files/liudawei/关于navicatq接oracle%20?20ORA-12737%20set%20CHS16GBK错误的解?zip

]]>
Oracle创徏外键(删除外键)http://www.tkk7.com/liudawei/articles/353462.html孤飞?/dc:creator>孤飞?/author>Thu, 30 Jun 2011 11:42:00 GMThttp://www.tkk7.com/liudawei/articles/353462.htmlhttp://www.tkk7.com/liudawei/comments/353462.htmlhttp://www.tkk7.com/liudawei/articles/353462.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/353462.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/353462.html--删除外键
ALTER TABLE WZ_JHTM DROP CONSTRAINT F_WZ_JHTM_XQJHD;


--创徏外键
ALTER TABLE WZ_JHTM add CONSTRAINT "F_WZ_JHTM_XQJHD" FOREIGN KEY ("XQJHD_ID")
  REFERENCES "BID_ADMIN"."WZ_XQJHD" ("XQJHD_ID") ENABLE



]]>
存储q程分批扚w删除大数据量?/title><link>http://www.tkk7.com/liudawei/articles/353459.html</link><dc:creator>孤飞?/dc:creator><author>孤飞?/author><pubDate>Thu, 30 Jun 2011 11:17:00 GMT</pubDate><guid>http://www.tkk7.com/liudawei/articles/353459.html</guid><wfw:comment>http://www.tkk7.com/liudawei/comments/353459.html</wfw:comment><comments>http://www.tkk7.com/liudawei/articles/353459.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/liudawei/comments/commentRss/353459.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/liudawei/services/trackbacks/353459.html</trackback:ping><description><![CDATA[<font face="Verdana">CREATE OR REPLACE PROCEDURE p_del_table<br />--功能Q@环删除表数据Q避免用大量回滚段<br />--设计Q?br />--~码Q?br />--日期Q?006q?6?7?br />(<br />iTabName       VARCHAR2        --输入要删除的表名<br />)<br />AS<br />vSql          VARCHAR2(2000); --动态SQL<br />vTabName      VARCHAR2(100);<br />BEGIN<br />--vTabName:=TRIM(iTabName);<br />vTabName:='vtestjhtm';<br />LOOP<br />--循环删除数据Q每ơ删?000条然后commit<br />vSql:='DELETE FROM '||vTabName||' WHERE ROWNUM<1000';<br />--执行动态SQL<br />EXECUTE IMMEDIATE vSql;<br />COMMIT;<br />--删除的表数据为空Ӟ退?br />EXIT WHEN SQL%ROWCOUNT=0;<br />END LOOP;<br />--提示删除成功<br />dbms_output.put_line('DELETE TABLE '||vTabName||' Successfully!');<br />EXCEPTION<br />WHEN OTHERS THEN<br />ROLLBACK;<br />--提示删除p|Qƈ提示错误信息<br />dbms_output.put_line('DELETE TABLE '||vTabName||' Fail!');<br />dbms_output.put_line('Error Message is: '||substr(SQLERRM,1,200));<br />END;<br /></font> <img src ="http://www.tkk7.com/liudawei/aggbug/353459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/liudawei/" target="_blank">孤飞?/a> 2011-06-30 19:17 <a href="http://www.tkk7.com/liudawei/articles/353459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何查询一个表被其他表所引用Q?/title><link>http://www.tkk7.com/liudawei/articles/353072.html</link><dc:creator>孤飞?/dc:creator><author>孤飞?/author><pubDate>Mon, 27 Jun 2011 07:29:00 GMT</pubDate><guid>http://www.tkk7.com/liudawei/articles/353072.html</guid><wfw:comment>http://www.tkk7.com/liudawei/comments/353072.html</wfw:comment><comments>http://www.tkk7.com/liudawei/articles/353072.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/liudawei/comments/commentRss/353072.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/liudawei/services/trackbacks/353072.html</trackback:ping><description><![CDATA[Select r.table_name table_name, p.table_name ref_table_name<br />From User_Constraints r, User_Cons_Columns p<br />Where r.constraint_type = 'R'<br />   And r.r_constraint_name = p.constraint_name<br />   And p.table_name = upper('&ref_talbe') <img src ="http://www.tkk7.com/liudawei/aggbug/353072.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/liudawei/" target="_blank">孤飞?/a> 2011-06-27 15:29 <a href="http://www.tkk7.com/liudawei/articles/353072.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle数据SQL整理http://www.tkk7.com/liudawei/articles/351515.html孤飞?/dc:creator>孤飞?/author>Wed, 01 Jun 2011 06:28:00 GMThttp://www.tkk7.com/liudawei/articles/351515.htmlhttp://www.tkk7.com/liudawei/comments/351515.htmlhttp://www.tkk7.com/liudawei/articles/351515.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/351515.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/351515.htmlUSER_TAB_COLUMNS视图中,如scott模式下查看dept表结构:
20:52:08 SQL> SELECT column_name, data_type FROM user_tab_columns WHERE table_name='DEPT';

?Oracle查询是否解锁与锁?br />1.查询
    
      SELECT /*+ rule */
 s.username,
 decode(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', l.type) LOCK_LEVEL,
 o.owner,
 o.object_name,
 o.object_type,
 s.sid,
 s.serial#,
 s.terminal,
 s.machine,
 s.program,
 s.osuser
  FROM v$session s, v$lock l, dba_objects o
 WHERE l.sid = s.sid
   AND l.id1 = o.object_id(+)
   AND s.username is NOT NULL

2.解锁(Ҏ需要kill  550为的sid 3761为对应的serial#)
    alter system kill session '550,3761';
    commit;

?增加修改字段 字段注释 表注?br />alter table 表名 add   字段 char(1);
alter table 表名 modify 字段 char(1);
comment on column 表名.字段?is '状?;
commnet on table 表名 is '表名'

]]>
left join ?left outer join 的区?http://www.tkk7.com/liudawei/articles/351305.html孤飞?/dc:creator>孤飞?/author>Mon, 30 May 2011 01:05:00 GMThttp://www.tkk7.com/liudawei/articles/351305.htmlhttp://www.tkk7.com/liudawei/comments/351305.htmlhttp://www.tkk7.com/liudawei/articles/351305.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/351305.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/351305.html阅读全文

]]>
数据库递归查询http://www.tkk7.com/liudawei/articles/349847.html孤飞?/dc:creator>孤飞?/author>Mon, 09 May 2011 08:28:00 GMThttp://www.tkk7.com/liudawei/articles/349847.htmlhttp://www.tkk7.com/liudawei/comments/349847.htmlhttp://www.tkk7.com/liudawei/articles/349847.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/349847.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/349847.html

DB2的递归查询

在db2可以使用sql语句来进行递归查询,是使用with语句

1.先徏一个树形表:

create table tst (
id  
integer,
parentId 
int,
name 
varchar(20))

2.插入数据
insert into tst values 
(
1,0,'a'),
(
2,0,'b'),
(
3,1,'c'),
(
4,1,'d'),
(
5,4,'d'),
(
6,5,'d')
3.使用递归查询
with rpl (id,parentId,name) as 
(
select id,parentId,name from tst  where parentId=1 
union all 
select  child.id,child.parentId,child.name from rpl parent, tst child where parent.id=child.parentId
)
select * from rpl

Oracle的递归查询


攉的几条在oracle中通过connect by prior来实现递归查询


Start with...Connect By子句递归查询一般用于一个表l护树Şl构的应用?br /> 创徏CZ表:
CREATE TABLE TBL_TEST
(
ID    NUMBER,
NAME VARCHAR2(100 BYTE),
PID   NUMBER                                  DEFAULT 0
);

插入试数据Q?br /> INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');

从Root往树末梢递归
select * from TBL_TEST
start with id=1
connect by prior id = pid

从末梢往树ROOT递归
select * from TBL_TEST
start with id=5
connect by prior pid = id


===============================================================================================================

有一张表   t  
字段Q?nbsp; 
parent  
child  
两个字段的关pL父子关系  
   
写一个sql语句Q查询出指定父下面的所有的?nbsp; 
   
比如  
   
a   b  
a   c    
a   e  
b   b1  
b   b2  
c   c1  
e   e1  
e   e3  
d   d1  
   
指定parent=aQ选出  
a   b  
a   c    
a   e  
b   b1  
b   b2  
c   c1  
e   e1  
e   e3  
   
SQL语句Q?nbsp; 
select   parent,child   from   test   start   with   parent='a'  
connect   by   prior   child=parent


================================================================================================

connect by 是结构化查询中用到的Q其基本语法是:
select ... from tablename start by cond1
connect by cond2
where cond3;
单说来是一个树状结构存储在一张表里,比如一个表中存在两个字D?
id,parentid那么通过表示每一条记录的parent是谁Q就可以形成一个树状结构?
用上q语法的查询可以取得q棵树的所有记录?
其中COND1是根l点的限定语句,当然可以攑֮限定条gQ以取得多个根结点,实际是多棵树?
COND2是连接条Ӟ其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR ID=PRAENTID是说上一条记录的ID是本条记录的PRAENTIDQ即本记录的父亲是上一条记录?
COND3是过滤条Ӟ用于对返回的所有记录进行过滤?/font>

PRIOR和START WITH关键字是可选项
PRIORYq算W必L|在q接关系的两列中某一个的前面。对于节炚w的父子关p,PRIOR
q算W在一侧表C父节点Q在另一侧表C子节点Q从而确定查找树l构是的序是自向下还?br /> 自底向上。在q接关系中,除了可以使用列名外,q允怋用列表达式?strong>START WITH 子句?br /> 可选项Q用来标识哪个节点作为查找树型结构的根节炏V若该子句被省略Q则表示所有满x?br /> 条g的行作ؓ根节炏V?br /> 完整的例子如SELECT PID,ID,NAME FROM T_WF_ENG_WFKIND START WITH PID =0 CONNECT BY PRIOR ID = PID


以上主要是针对上层对下层的顺向递归查询而用start with ... connect by prior ...q种方式,但有时在需求需要的时?可能会需要由下层向上层的逆向递归查询,此是语句有所变化:例如要实?select * from table where id in ('0','01','0101','0203','0304') ;现在x0304的上一U?3l递归出来,0203的上一U?2l递归出来,?1现在已经是存在的,最高层?.而这张table不仅仅这些数?但我现在只需?'0','01','0101','0203','0304','02','03')q些数据,此时语句可以q样写SELECT PID,ID,NAME FROM V_WF_WFKIND_TREE WHERE ID IN (SELECT DISTINCT(ID) ID FROM V_WF_WFKIND_TREE CONNECT BY PRIOR PID = ID START WITH ID IN ('0','01','0101','0203','0304') );

其中START WITH ID IN里面的g可以替换SELECT 子查询语?


注意׃层向下层递归与下层向上层递归的区别在于START WITH...CONNECT BY PRIOR...的先后顺序以?ID = PID ?PID = ID 的微变?

=============================================================
connect by prior start with l常会被用到一个表中存在递归关系的时候。比如我们经怼一个比较复杂的目录树存储到一个表中。或者将一些部门存储到一个表中,而这些部门互相有隶属关系。这个时候你׃用到connect by prior start with?/font>

典型的用方法就是:
select * from table connect by prior cur_id=parent_id start with cur_id=???
例如Q?br /> a            b
1           0
2           1
3           1
4           2
5           3

如果x找a=2及其下面的所有数据,则:
select * from table connect by prior a=b start with a=2
a           b
2           1
4           2

q些只是基础Q皮毛。其实只要你灉|的构造查询语句。可以得出意想不到的l果。比如生成树每一个\径?br /> 但是q些记录l成的树必须正常才可以。如果有互ؓ父子的情况,׃出现循环错误Q?/font>

 

select * from tb_cus_area_cde

--子取?/strong>
select * from tb_cus_area_cde a   
CONNECT BY PRIOR     a.c_snr_area=a.c_area_cde START WITH a.c_area_cde='1040101'

--父取?br /> select * from tb_cus_area_cde a   
CONNECT BY PRIOR     a.c_area_cde=a.c_snr_area START WITH a.c_snr_area is null

 

注意Q在用这个函数的时候,statement的参数要?ResultSet.TYPE_SCROLL_INSENSITIVE   而不能用 ResultSet.TYPE_SCROLL_SENSITIVE,在这里再把这两个之间的区别讲Ԍ

1.TYPE_FORWORD_ONLY,只可向前滚动Q?nbsp; 
   
2.TYPE_SCROLL_INSENSITIVE,双向滚动Q但不及时更斎ͼ是如果数据库里的数据修改过Qƈ不在ResultSet中反应出来?nbsp; 
   
3.TYPE_SCROLL_SENSITIVEQ双向滚动,q及时跟t数据库的更?以便更改ResultSet中的数据

 


======================================
10g树Ş查询ҎCONNECT_BY_ISCYCLE

     ?0g中Oracle提供了新的伪列:CONNECT_BY_ISCYCLEQ通过q个伪列Q可以判断是否在树Ş查询的过E中构成了@环,q个伪列只是在CONNECT BY NOCYCLE方式下有效?/font>

  q一描qC下解决问题的思\?/font>

  CONNECT_BY_ISCYCLE的实现和前面两篇文章中CONNECT_BY_ROOT和CONNECT_BY_ISLEAF的实现完全不同?/font>

  因ؓ要实现CONNECT_BY_ISCYCLEQ就必须先实现CONNECT BY NOCYCLEQ而在9i中是没有Ҏ实现q个功能的?/font>

  也就是说Q首先要实现自己的树形查询的功能Q而仅q第一点,是一个异常困隄问题Q何况后面还要实现NOCYCLEQ最后再加上一个ISCYCLE的判断?/font>

  所以ȝ来说Q这个功能的实现比前面两个功能要复杂得多。由于树形查询的LEVEL是不固定的,所以采用链接的方式实现Q基本上是不现实的。换句话_用纯SQL的方式来实现树Ş查询的功能基本上不可行。而ؓ了解册个功能,只能通过PL/SQL配合SQL来实现?/font>

  仍然是首先构造一个例子:

SQL> CREATE TABLE T_TREE (ID NUMBER, FATHER_ID NUMBER, NAME VARCHAR2(30));
  表已创徏?
  SQL> INSERT INTO T_TREE VALUES (1, 0, 'A');
  已创?1 行?
  SQL> INSERT INTO T_TREE VALUES (2, 1, 'BC');
  已创?1 行?
  SQL> INSERT INTO T_TREE VALUES (3, 1, 'DE');
  已创?1 行?
  SQL> INSERT INTO T_TREE VALUES (4, 1, 'FG');
  已创?1 行?
  SQL> INSERT INTO T_TREE VALUES (5, 2, 'HIJ');
  已创?1 行?
  SQL> INSERT INTO T_TREE VALUES (6, 4, 'KLM');
  已创?1 行?
  SQL> INSERT INTO T_TREE VALUES (7, 6, 'NOPQ');
  已创?1 行?
  SQL> INSERT INTO T_TREE VALUES (0, 0, 'ROOT');
  已创?1 行?
  SQL> INSERT INTO T_TREE VALUES (4, 7, 'FG');
  已创?1 行?
  SQL> COMMIT;
  提交完成?
  SQL> SELECT * FROM T_TREE;
  ID FATHER_ID NAME
  ---------- ---------- ------------------------------
  1 0 A
  2 1 BC
  3 1 DE
  4 1 FG
  5 2 HIJ
  6 4 KLM
  7 6 NOPQ
  0 0 ROOT
  4 7 FG
  已选择9行?

  上面构造了两种树Ş查询循环的情况,一U是当前记录的自循环Q另一U是树Ş查询的某个子节点是当前节点的先节点Q从而构成了循环。在q个例子中,记录ID?和ID?且FATHER_ID{于7的两条记录分别构成了上述的两U@环的情况?/font>

  下面来看看CONNECT_BY_ISCYCLE和CONNECT BY NOCYCLE的功能:

SQL> SELECT *
  2 FROM T_TREE
  3 START WITH ID = 0
  4 CONNECT BY PRIOR ID = FATHER_ID;
  ERROR:
  ORA-01436: 用户数据中的 CONNECT BY 循环
  未选定?
  SQL> SELECT *
  2 FROM T_TREE
  3 START WITH ID = 1
  4 CONNECT BY PRIOR ID = FATHER_ID;
  ERROR:
  ORA-01436: 用户数据中的 CONNECT BY 循环
  未选定?


  q就是不使用CONNECT BY NOCYCLE的情况,查询会报错,指出树Ş查询中出现@环,?0g中可以用CONNECT BY NOCYCLE的方式来避免错误的生:

SQL> SELECT *
  2 FROM T_TREE
  3 START WITH ID = 0
  4 CONNECT BY NOCYCLE PRIOR ID = FATHER_ID;
  ID FATHER_ID NAME
  ---------- ---------- ------------------------------
  0 0 ROOT
  1 0 A
  2 1 BC
  5 2 HIJ
  3 1 DE
  4 1 FG
  6 4 KLM
  7 6 NOPQ
  已选择8行?


  使用CONNECT BY NOCYCLEQOracle自动避免循环的生,不产生循环的数据查询出来,下面看看CONNECT_BY_ISCYCLE的功能:

SQL> SELECT ID,
  2 FATHER_ID,
  3 NAME,
  4 CONNECT_BY_ISCYCLE CYCLED
  5 FROM T_TREE
  6 START WITH ID = 0
  7 CONNECT BY NOCYCLE PRIOR ID = FATHER_ID;
  ID FATHER_ID NAME CYCLED
  ---------- ---------- ------------------------------ ----------
  0 0 ROOT 1
  1 0 A 0
  2 1 BC 0
  5 2 HIJ 0
  3 1 DE 0
  4 1 FG 0
  6 4 KLM 0
  7 6 NOPQ 1
  已选择8行?


  可以看到QCONNECT_BY_ISCYCLE伪列指出循环在树形查询中发生的位|?/font>

  Z实现CONNECT_BY_ISCYCLE必d实现CONNECT BY NOCYCLE方式Q而这?i中是没有现成的办法的Q所以这里尝试用PL/SQL来自己实现树形查询的功能?/font>

SQL> CREATE OR REPLACE FUNCTION F_FIND_CHILD(P_VALUE VARCHAR2) RETURN VARCHAR2 AS
  2 V_STR VARCHAR2(32767) := '/' || P_VALUE;
  3
  4 PROCEDURE P_GET_CHILD_STR (P_FATHER IN VARCHAR2, P_STR IN OUT VARCHAR2) AS
  5 BEGIN
  6 FOR I IN (SELECT ID FROM T_TREE WHERE FATHER_ID = P_FATHER AND FATHER_ID != ID) LOOP
  7 IF INSTR(P_STR || '/', '/' || I.ID || '/') = 0 THEN
  8 P_STR := P_STR || '/' || I.ID;
  9 P_GET_CHILD_STR(I.ID, P_STR);
  10 END IF;
  11 END LOOP;
  12 END;
  13 BEGIN
  14 P_GET_CHILD_STR(P_VALUE, V_STR);
  15 RETURN V_STR;
  16 END;
  17 /


  函数已创建?/font>

  构造一个函敎ͼ在函C递归调用q程来实现树形查询的功能?/font>

  下面看看调用q个函数的结果: 

SQL> SELECT F_FIND_CHILD(0) FROM DUAL;
  F_FIND_CHILD(0)
  ------------------------------------------------
  /0/1/2/5/3/4/6/7
  SQL> SELECT F_FIND_CHILD(2) FROM DUAL;
  F_FIND_CHILD(2)
  ------------------------------------------------
  /2/5
  SQL> SELECT F_FIND_CHILD(4) FROM DUAL;
  F_FIND_CHILD(4)
  ------------------------------------------------
  /4/6/7


  虽然目前存在的问题还有很多,但是已经基本上实C一个最单的NOCYCLE的SYS_CONNECT_BY_PATH的功能?/font>

  有了q个函数作ؓ基础Q就可以逐步的实现最l的目标了?br />




]]>唯一索引&普通烦引的一个有的区别http://www.tkk7.com/liudawei/articles/340994.html孤飞?/dc:creator>孤飞?/author>Fri, 17 Dec 2010 08:07:00 GMThttp://www.tkk7.com/liudawei/articles/340994.htmlhttp://www.tkk7.com/liudawei/comments/340994.htmlhttp://www.tkk7.com/liudawei/articles/340994.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/340994.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/340994.html今天CNOUG上,一个网友问了一个随机取记录的问题,q接如下Q?

http://www.oracle.com.cn/viewthread.php?tid=130433

在测试过E,却引h对Oracle的烦引的机制有了一ơ生动的回顾?

试的本意是参数一个随机数Q然后根据随机数取一条记录?

SELECT * FROM phs.t1 WHERE rn = trunc(dbms_random.value(1,100000))

Rn是烦引字D?normal betreeQ根据rownum来徏立?

但是初次试的结果,却出乎我意料Q居然查询结果是Q无记录或者随机长度记录集。多ơ测试:

SELECT COUNT(*) FROM phs.t1 WHERE rn = trunc(dbms_random.value(1,100000));

l果竟然是:0,28909Q?,0,9870Q?3012Q?,56789Q?5189Q?240…

我花?分钟p决了q个问题Q但׃三个时的思考,我终于想了一套说法来描述q里面的关系?

解决1Q把sql改ؓ

WITH tab AS(SELECT trunc(dbms_random.value(1,100000)) a FROM dual)
  SELECT * FROM t1 WHERE rn =( SELECT a FROM tab)


解决2Q把rn的烦引改为,unique

实际看到W二U解军_法,大概有U明白的感觉了,但是惌释一下又无法说清。说白了Q这里面牉|了Oracle Intenal的东西,q些东西又不是公开的。我只能凭着仅有的资料去猜测?

?/font>normal索引下,SQL的执行计划是RANGE SCANQ?/font>unique索引Q则?/font>unique SCAN?/font>
发生q种现象实际?/font>SQL的执行机制以及烦引的机制有着密切的联pR?/font>
通过查询Q可以看索引?/font>2747个叶子块Q?/font>67?/font>branch 块,height 3
SQL> SELECT s.leaf_blocks,s.blevel FROM dba_indexes s WHERE s.index_name = 'INDEX_T1_RN';


LEAF_BLOCKS   BLEVEL

----------- ----------
2747   2


SQL> SELECT SUM(blocks) FROM dba_extents WHERE segment_name='INDEX_T1_RN';



SUM(BLOCKS)

-----------
2816
那么它的l构如图Q?/font>

'800')this.width='800';if(this.height>'600')this.height='600';">



SQL的执行步骤如下:
1Q?/font>SQL匚wQ语法语义检?/font>,通过?/font>LIBRARY CACHE中对象的比对Q进行匹配?/font>
2Q对子查询,视图{进行重新组合和SQL改写Q判断对象访问的开销以及l果集的大小,每个对象都独立计成本以及返回的l果集的大小Q判断不同的q接序的不同开销
Q连接方式和q接序被通盘考虑Qƈ且找到开销最的q接方式q个步骤里面包含?/font>SQL执行计划的优化。生执行树Q执行树被生成后攑֜LIBRARY CACHE里,?/font>SQL执行的时候,被用来驱动查?/font>.
4Q分配绑定变量需要的内存I间Q绑定变量的值实现绑定。用上一步生的执行计划执行SQL.
5Q对?/font>SELECT操作Q比普通的SQL多了一?/font>FETCH步骤Q在q个步骤中,实际上的DB BLOCK的访问才会生。在q个阶段Q将剔除不需要的数据Q把l果攑օl果集,传输l客L?/font>
有了上面的知识,我现在来解释q个现象?/font>
Q:Z么在normal的烦引下Q?/font>sqlq回l构集的大小是随机的Q在unique下面却能定唯一记录Q?/font>
A:首先?/font>normal索引下,优化器会把执行计划解释ؓRANGE SCANQ因为它认ؓ可能q回多条记录。优化器在进行执行计划编写的时候,首先׃计算 trunc(dbms_random.value(1,100000))Q由此来定选择什么执行计划,假设本次产生的随机数?7905?

q入执行阶段Q系l找?7905“开?#8220;所在的索引数据块,注意q个“开?#8221;Q也是说它只关注数据是从那里开始的Q,随后q行遍历该块的水q链表寻找,执行qo,扑ֈ适合rowidQ再去获取数据块?

在normal模式下,׃是范围SCANQ优化器实际?

Rn= trunc(dbms_random.value(1,100000))

拆成?

Rn >= trunc(dbms_random.value(1,100000)) and

Rn <= trunc(dbms_random.value(1,100000))

在unique模式下,仍然?

Rn= trunc(dbms_random.value(1,100000))

所以,在normal模式下,遍历q程发现?7905的记录,但它q个时候它q会判断是否已经辑ֈ区间扫描的终点,又会执行Rn <= trunc(dbms_random.value(1,100000))

q个时候,trunc(dbms_random.value(1,100000))被重新计!Q!

那么׃出现下面的分支情况:

'800')this.width='800';if(this.height>'600')this.height='600';">


1.l果>87905,优化器认为已l达到区间终点(索引是有序的Q,谓词判断l果 true + false = false,所以返回空l果集?

2.l果于{于87905,q回该记录,计算出新的谓词例?2346Q再ơ寻扑֝Q遍历水q_表(重复上面的动作)Q然后又q入分支判断…最l出现分?的时候终止?

q样p明ؓ什么会出现q种情况?



?/font>unique模式下,在遍历水q链表的时候,扑ֈ当前值就q回Q而不用进行区间判断,或者是SCAN多条。所以结果集是正的?/font>
Q:Z么采用了with语法可以避免q种情况呢?
A:因ؓwith字句?/font>oracle内部被解释ؓ一个内联视图或者时表Q所?/font>trunc(dbms_random.value(1,100000))只会计算一ơ,之后的计是针对固定的内联视囄?

oracle 不允许这U写法,rn= sequences.nextvalQ估计也是出于这个考虑吧?
惛_q里Q就l束了,其实可以自己写一个random函数Q在里面加一个记录点Q来证明谓词多次改变Q也可以做更详细的sql traceQdump dump…

或者换一个Oracle的h来解释一下,OK了,但我估计在Oracle china也没几个了解数据库机密的人。唉…

引自Qhttp://valen.blog.ccidnet.com/blog-htm-do-showone-uid-51502-type-blog-itemid-262825.html

]]>Oracle随机抽取(?http://www.tkk7.com/liudawei/articles/340993.html孤飞?/dc:creator>孤飞?/author>Fri, 17 Dec 2010 08:06:00 GMThttp://www.tkk7.com/liudawei/articles/340993.htmlhttp://www.tkk7.com/liudawei/comments/340993.htmlhttp://www.tkk7.com/liudawei/articles/340993.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/340993.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/340993.html?00万数据量的表中随机抽取一条数?要达?.02S以内

刚好我有一?20w数据的测试表Q在一个很老的PC上,northwood 2.4的p4Qsis芯片l?
复制内容到剪贴板
代码:
SQL> set timing on;
SQL> SELECT COUNT(1) FROM t1;

  COUNT(1)
----------
   1219948

Executed in 0.015 seconds

SQL> alter table T1 add rn number;

Table altered

Executed in 0.36 seconds

SQL> update t1
  2  set rn =rownum;

1219948 rows updated

Executed in 129.75 seconds

SQL> create index index_t1_rn on T1 (rn);

Index created

Executed in 51.234 seconds

SQL>
SQL> WITH tab AS(SELECT trunc(dbms_random.value(1,100000)) a FROM dual)
  2  SELECT * FROM t1 WHERE rn =( SELECT a FROM tab)
  3  /

    NORMAL                                   CLASS         RN
---------- --------------------------------------- ----------
      3198                                       5       7384

Executed in 0.031 seconds

SQL>
SQL> WITH tab AS(SELECT trunc(dbms_random.value(1,100000)) a FROM dual)
  2  SELECT * FROM t1 WHERE rn =( SELECT a FROM tab)
  3  /

    NORMAL                                   CLASS         RN
---------- --------------------------------------- ----------
      4760                                      12      72082

Executed in 0.047 seconds

SQL> /

    NORMAL                                   CLASS         RN
---------- --------------------------------------- ----------
      6922                                       7      30862

Executed in 0.033 seconds

SQL> /

    NORMAL                                   CLASS         RN
---------- --------------------------------------- ----------
      1727                                       5      81038

Executed in 0.019 seconds

SQL> /

    NORMAL                                   CLASS         RN
---------- --------------------------------------- ----------
     11890                                       3      65704

Executed in 0.016 seconds
100w不是一个恐怖的数据量,创徏字段索引都比较快。这c问题关注的焦点Q就是在如何减少IO上,诸如get random value的问题,实际只消耗一ơCPU旉Q而CPU都几百M HZ?br /> 最后,我用了一个with 语法来取敎ͼ其实是我在测试过E发C个现象,暂时不表?br />
引自Qhttp://www.oracle.com.cn/viewthread.php?tid=130433&extra=page%3D1




]]>
Oralce随机?/title><link>http://www.tkk7.com/liudawei/articles/340986.html</link><dc:creator>孤飞?/dc:creator><author>孤飞?/author><pubDate>Fri, 17 Dec 2010 07:30:00 GMT</pubDate><guid>http://www.tkk7.com/liudawei/articles/340986.html</guid><wfw:comment>http://www.tkk7.com/liudawei/comments/340986.html</wfw:comment><comments>http://www.tkk7.com/liudawei/articles/340986.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/liudawei/comments/commentRss/340986.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/liudawei/services/trackbacks/340986.html</trackback:ping><description><![CDATA[<p> 首先W一个是随机抽取6?</p> <p>    select * from  (select * from tablename order by order by dbms_random.value) where  rownumQ? </p> <p>    q个Ҏ的原理我认ؓ应该是把表中的数据全部查询出来按照随机数q行排列后在从查询出来的数据中查询中6条记录,q个Ҏ我在使用的过E中发现Q如果记录一多的话查询的速度有一点点的慢<br /> <br /> W二个是利用oracle的sample()或sample blockҎ<br /> </p> <p>选择10%的记?br /> select * from t1 sample(10)<br /> 选择0.1%的记?br /> select * from t1 sample(0.1)</p> <p>Ҏ数据块选择1%的记?br /> select * from t1 sample block(1) </p> <p>使用数据块选择与用记录行选择的区别:使用数据块选择表示h的采集是Z数据块采集的Q也是说样本如果一个数据块被采集ؓhQ则数据块里的记录全部都是样?/p> <p><br /> hl计是基于统计学采集的,是有概率问题Q不一定完全准,如你要取50%的记录,但实际可能返回给?9%的记录集Q也可能q回l你51%的记录集</p> <p><br /> 例如</p> <p>如果表T1有数据块B1,B2<br /> B1有记录R1,R2,R3,R4,R5<br /> B2有记录R6,R7,R8,R9,R10</p> <p>如果使用如下SQL选择50%的数?br /> select * from t1 sample block(50)</p> <p>则返回的l果可能是数据块B1的记?br /> R1,R2,R3,R4,R5<br /> 也可能是数据块B2的记?br /> R6,R7,R8,R9,R10<br /> 也可能不q回记录?/p> <p><br /> 如果使用如下SQL选择50%的数?br /> select * from t1 sample (50)</p> <p>则返回的l果可能?br /> R2,R3,R5,R8,R9<br /> 也可能是如下的样?br /> R1,R3,R4,R8</p> <p> </p> <p><br /> 应用CZQ?br /> 随机从表中取?条记录,选取记录的概率是1%<br /> select * from t1 sample(1) where rownum=1</p> <p>随机从表中取?0条记录,选取记录的概率是0.1%<br /> select * from t1 sample(0.1) where rownum<=10</p> <p>注:当选取的概率越低,讉K表的记录数将多</p> <p><br /> ORACLE参考手册中的相兌明:</p> <p>sample_clause<br /> The sample_clause lets you instruct Oracle to select from a random sample of rows from the table, rather than from the entire table.</p> <p><br /> BLOCK<br /> BLOCK instructs Oracle to perform random block sampling instead of random row sampling.</p> <p><br /> sample_percent<br /> sample_percent is a number specifying the percentage of the total row or block count to be included in the sample. The value must be in the range .000001 to (but not including) 100.</p> <p>Restrictions on Sampling During Queries<br /> You can specify SAMPLE only in a query that selects from a single table. Joins are not supported. However, you can achieve the same results by using a CREATE TABLE ... AS SELECT query to materialize a sample of an underlying table and then rewrite the original query to refer to the newly created table sample. If you wish, you can write additional queries to materialize samples for other tables. </p> <p>When you specify SAMPLE, Oracle automatically uses cost-based optimization. Rule-based optimization is not supported with this clause. </p> <p>--------------------------------------------------------------------------------<br /> Caution: <br /> The use of statistically incorrect assumptions when using this feature can lead to incorrect or undesirable results.</p> <p>--------------------------------------------------------------------------------<br />  <br /> ?<br /> Sample选项<br /> 使用sample选项的意思是指定Oracle从表中随机选择记录hQ这h从整个表中选择更高?</p> <p>block选项<br /> 加上 BLOCK选项时表C随机取数据块,而不是随机取记录?</p> <p>sample_percent选项<br /> sample_percent是指定总记录行或数据块为数据样本的癑ֈ比数|q个值只能在0.000001?00之间Q且不能{于100</p> <p>限制<br /> 只能在单表查询的SQL中指定sample选项Q不支持有连接的查询。但是,你可以用CREATE TABLE ... AS SELECT查询的语法完成同L效果Q然后再采用新徏的样本表重新~写查询SQL?/p> <p>当你指定用sampleӞ不支持基于规?rule)的优化法则,ORACLE自动使用基本成本(cost)的优化法?br /> </p> <img src ="http://www.tkk7.com/liudawei/aggbug/340986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/liudawei/" target="_blank">孤飞?/a> 2010-12-17 15:30 <a href="http://www.tkk7.com/liudawei/articles/340986.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle查询是否锁定与解?/title><link>http://www.tkk7.com/liudawei/articles/340883.html</link><dc:creator>孤飞?/dc:creator><author>孤飞?/author><pubDate>Thu, 16 Dec 2010 06:02:00 GMT</pubDate><guid>http://www.tkk7.com/liudawei/articles/340883.html</guid><wfw:comment>http://www.tkk7.com/liudawei/comments/340883.html</wfw:comment><comments>http://www.tkk7.com/liudawei/articles/340883.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/liudawei/comments/commentRss/340883.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/liudawei/services/trackbacks/340883.html</trackback:ping><description><![CDATA[<p>1.查询<br />     <br />     </p>   SELECT /*+ rule */<br />  s.username,<br />  decode(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', l.type) LOCK_LEVEL,<br />  o.owner,<br />  o.object_name,<br />  o.object_type,<br />  s.sid,<br />  s.serial#,<br />  s.terminal,<br />  s.machine,<br />  s.program,<br />  s.osuser<br />   FROM v$session s, v$lock l, dba_objects o<br />  WHERE l.sid = s.sid<br />    AND l.id1 = o.object_id(+)<br />    AND s.username is NOT NULL<br /> <br /> 2.解锁(<span style="color: red">Ҏ需要kill  550为的sid 3761为对应的serial#</span>)<br />     alter system kill session '550,3761';<br />     commit; <img src ="http://www.tkk7.com/liudawei/aggbug/340883.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/liudawei/" target="_blank">孤飞?/a> 2010-12-16 14:02 <a href="http://www.tkk7.com/liudawei/articles/340883.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle下实C键自增长(触发?http://www.tkk7.com/liudawei/articles/339288.html孤飞?/dc:creator>孤飞?/author>Mon, 29 Nov 2010 01:46:00 GMThttp://www.tkk7.com/liudawei/articles/339288.htmlhttp://www.tkk7.com/liudawei/comments/339288.htmlhttp://www.tkk7.com/liudawei/articles/339288.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/339288.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/339288.htmldrop table book;   
  • --创徏?nbsp;     
  • create table book(       
  •    bookId varchar2(4) primary key,   
  •    name varchar2(20)         
  • );   
  • --创徏序列      
  • create sequence book_seq start with 1 increment by 1;    
  •   
  • --创徏触发?nbsp;     
  • create or replace trigger book_trigger       
  • before insert on book       
  • for each row       
  • begin       
  • select book_seq.nextval into :new.bookId from dual;      
  • end ;   
  • --d数据      
  • insert into book(name)  values ('cc');    
  • insert into book(name)  values ('dd');   
  •   
  • commit


  • ]]>
    Oracle创徏表空?用户http://www.tkk7.com/liudawei/articles/336762.html孤飞?/dc:creator>孤飞?/author>Tue, 02 Nov 2010 01:42:00 GMThttp://www.tkk7.com/liudawei/articles/336762.htmlhttp://www.tkk7.com/liudawei/comments/336762.htmlhttp://www.tkk7.com/liudawei/articles/336762.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/336762.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/336762.html

    ----------------------------------------------------
    -- Export file for user JSYD                      --
    -- Created by Administrator on 2008-9-4, 10:34:43 --
    ----------------------------------------------------set echo on
    --set feedback off
    --set verify off

    --define tb_path=C:\oracle\product\10.1.0\oradata\steel_trade\


    --prompt '建立表空间开?..'

    create tablespace STEEL_TRADE_DAT datafile '&tb_path\STEEL_TRADE_DAT.DBF' size 10M AUTOEXTEND ON NEXT  10240K MAXSIZE UNLIMITED extent management local uniform size 128k online;
    create tablespace STEEL_TRADE_IDX datafile '&tb_path\STEEL_TRADE_IDX.DBF' size 10M AUTOEXTEND ON NEXT  10240K MAXSIZE UNLIMITED extent management local uniform size 128k online;
    create temporary tablespace STEEL_TRADE_TMP tempfile '&tb_path\STEEL_TRADE_TMP.DBF' size 10m AUTOEXTEND ON NEXT  10240K MAXSIZE UNLIMITED extent management local uniform size 128k;


    --prompt '建立表空间完毕!'


    02_create_user

    ----------------------------------------------------
    -- Export file for user JSYD                      --
    -- Created by Administrator on 2008-9-4, 10:34:43 --
    ----------------------------------------------------
    --prompt '创徏数据库用?..'

    --set feedback off
    --set define off
    --set echo off
    --PROMPT 正在创徏login ---jsyd
    create user bid_admin identified by a123456
        default tablespace STEEL_TRADE_DAT
        temporary tablespace STEEL_TRADE_TMP
        account unlock;


    --PROMPT 正在创徏角色权限 ---jsyd


    --PROMPT 正在创徏pȝ权限 ---jsyd
    grant AUDIT ANY to bid_admin with admin option;
    grant DROP USER to bid_admin with admin option;
    grant ALTER USER to bid_admin with admin option;
    grant ANALYZE ANY to bid_admin with admin option;
    grant BECOME USER to bid_admin with admin option;
    grant CREATE ROLE to bid_admin with admin option;
    grant CREATE TYPE to bid_admin with admin option;
    grant CREATE USER to bid_admin with admin option;
    grant CREATE VIEW to bid_admin with admin option;
    grant ALTER SYSTEM to bid_admin with admin option;
    grant AUDIT SYSTEM to bid_admin with admin option;
    grant CREATE TABLE to bid_admin with admin option;
    grant DROP PROFILE to bid_admin with admin option;
    grant ALTER PROFILE to bid_admin with admin option;
    grant ALTER SESSION to bid_admin with admin option;
    grant DROP ANY ROLE to bid_admin with admin option;
    grant DROP ANY TYPE to bid_admin with admin option;
    grant DROP ANY VIEW to bid_admin with admin option;
    grant QUERY REWRITE to bid_admin with admin option;
    grant ALTER ANY ROLE to bid_admin with admin option;
    grant ALTER ANY TYPE to bid_admin with admin option;
    grant ALTER DATABASE to bid_admin with admin option;
    grant CREATE CLUSTER to bid_admin with admin option;
    grant CREATE LIBRARY to bid_admin with admin option;
    grant CREATE PROFILE to bid_admin with admin option;
    grant CREATE SESSION to bid_admin with admin option;
    grant CREATE SYNONYM to bid_admin with admin option;
    grant CREATE TRIGGER to bid_admin with admin option;
    grant DROP ANY INDEX to bid_admin with admin option;
    grant DROP ANY TABLE to bid_admin with admin option;
    grant GRANT ANY ROLE to bid_admin with admin option;
    grant LOCK ANY TABLE to bid_admin with admin option;
    grant ALTER ANY INDEX to bid_admin with admin option;
    grant ALTER ANY TABLE to bid_admin with admin option;
    grant CREATE ANY TYPE to bid_admin with admin option;
    grant CREATE ANY VIEW to bid_admin with admin option;
    grant CREATE SEQUENCE to bid_admin with admin option;
    grant CREATE SNAPSHOT to bid_admin with admin option;
    grant DROP TABLESPACE to bid_admin with admin option;
    grant ALTER TABLESPACE to bid_admin with admin option;
    grant BACKUP ANY TABLE to bid_admin with admin option;
    grant CREATE ANY INDEX to bid_admin with admin option;
    grant CREATE ANY TABLE to bid_admin with admin option;
    grant CREATE PROCEDURE to bid_admin with admin option;
    grant DELETE ANY TABLE to bid_admin with admin option;
    grant DROP ANY CLUSTER to bid_admin with admin option;
    grant DROP ANY LIBRARY to bid_admin with admin option;
    grant DROP ANY SYNONYM to bid_admin with admin option;
    grant DROP ANY TRIGGER to bid_admin with admin option;
    grant EXECUTE ANY TYPE to bid_admin with admin option;
    grant INSERT ANY TABLE to bid_admin with admin option;
    grant SELECT ANY TABLE to bid_admin with admin option;
    grant UPDATE ANY TABLE to bid_admin with admin option;
    grant ALTER ANY CLUSTER to bid_admin with admin option;
    grant ALTER ANY LIBRARY to bid_admin with admin option;
    grant ALTER ANY TRIGGER to bid_admin with admin option;
    grant COMMENT ANY TABLE to bid_admin with admin option;
    grant CREATE TABLESPACE to bid_admin with admin option;
    grant DROP ANY SEQUENCE to bid_admin with admin option;
    grant DROP ANY SNAPSHOT to bid_admin with admin option;
    grant FORCE TRANSACTION to bid_admin with admin option;
    grant MANAGE TABLESPACE to bid_admin with admin option;
    grant ALTER ANY SEQUENCE to bid_admin with admin option;
    grant ALTER ANY SNAPSHOT to bid_admin with admin option;
    grant CREATE ANY CLUSTER to bid_admin with admin option;
    grant CREATE ANY LIBRARY to bid_admin with admin option;
    grant CREATE ANY SYNONYM to bid_admin with admin option;
    grant CREATE ANY TRIGGER to bid_admin with admin option;
    grant DROP ANY DIRECTORY to bid_admin with admin option;
    grant DROP ANY PROCEDURE to bid_admin with admin option;
    grant RESTRICTED SESSION to bid_admin with admin option;
    grant ALTER ANY PROCEDURE to bid_admin with admin option;
    grant ALTER RESOURCE COST to bid_admin with admin option;
    grant CREATE ANY SEQUENCE to bid_admin with admin option;
    grant CREATE ANY SNAPSHOT to bid_admin with admin option;
    grant DROP PUBLIC SYNONYM to bid_admin with admin option;
    grant EXECUTE ANY LIBRARY to bid_admin with admin option;
    grant GRANT ANY PRIVILEGE to bid_admin with admin option;
    grant SELECT ANY SEQUENCE to bid_admin with admin option;
    grant CREATE ANY DIRECTORY to bid_admin with admin option;
    grant CREATE ANY PROCEDURE to bid_admin with admin option;
    grant CREATE DATABASE LINK to bid_admin with admin option;
    grant GLOBAL QUERY REWRITE to bid_admin with admin option;
    grant UNLIMITED TABLESPACE to bid_admin with admin option;
    grant CREATE PUBLIC SYNONYM to bid_admin with admin option;
    grant DROP ROLLBACK SEGMENT to bid_admin with admin option;
    grant EXECUTE ANY PROCEDURE to bid_admin with admin option;
    grant FORCE ANY TRANSACTION to bid_admin with admin option;
    grant SELECT ANY DICTIONARY to bid_admin with admin option;
    grant ALTER ROLLBACK SEGMENT to bid_admin with admin option;
    grant CREATE ROLLBACK SEGMENT to bid_admin with admin option;
    grant DROP PUBLIC DATABASE LINK to bid_admin with admin option;
    grant CREATE PUBLIC DATABASE LINK to bid_admin with admin option;
    --exit;



    ]]>
    Oracle9i 字符集与NLS_LANG搭配试gؕ码问题分?http://www.tkk7.com/liudawei/articles/332310.html孤飞?/dc:creator>孤飞?/author>Fri, 17 Sep 2010 08:04:00 GMThttp://www.tkk7.com/liudawei/articles/332310.htmlhttp://www.tkk7.com/liudawei/comments/332310.htmlhttp://www.tkk7.com/liudawei/articles/332310.html#Feedback0http://www.tkk7.com/liudawei/comments/commentRss/332310.htmlhttp://www.tkk7.com/liudawei/services/trackbacks/332310.html【背景介l?/font>
    ===================================================================
    最q在使用Oracle9i数据库进行数据插入、查询、导?出,有时会出Cؕ码的情况Q具体的情Ş有以下两U:

    1.首次插入/昄q

    2.首次插入/昄正常、但把数据用工具导出为本地文?例如TXT)文gQ再在另一个客L中打开该文件ƈ执行时再ơ插入的数据昄Zؕ码?

    遂在本地创徏两个数据库,一个ؓAL32UTF8字符集,一个ؓZHS16GBK字符集,配合客户端NLS_LANG的不同设|,试q的情况及q行原因分析?nbsp;   
    ===================================================================

    【测试目的?br style="font-family: " /> ===================================================================
    试不同的数据库字符集和客户端NLS_LANG搭配下,中文字符/中文日期的插入、显C?br style="font-family: " /> ===================================================================

    【测试环境?br style="font-family: " /> ===================================================================
    Windows 2000 Professional (英文? + Oracle 9.2.0.1.0 + SQL*Plus: Release 9.2.0.1.0

    注:此次试的客L应用工具为SQL*PLUSQ如果是使用TOAD、PL/SQL Develop之类工具Q得到的l果会和以下有些不同。推荐用SQL*PLUS作ؓ一切客L应用的测试工?br style="font-family: " /> ===================================================================

    【测试数据库?br style="font-family: " /> ===================================================================
    本机数据?: SID: PAULLIN 登陆参数: qprod/qprod@paullin
    本机数据?QSID: PAUL    登陆参数Qqlinpen/pengpenglin@paul
    ===================================================================

    【测试字W集?br style="font-family: " /> ===================================================================
    客户端应?操作pȝ字符集:GB2312

    客户端NLS_LANG讄Q?br style="font-family: " />   AMERICAN_AMERICA.US7ASCII
      AMERICAN_AMERICA.WE8MSWIN1252
      AMERICAN_AMERICA.ZHS16GBK
      AMERICAN_AMERICA.AL32UTF8
      SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    数据库端字符集:
      PAULLIN: AL32UF8
      PAUL: ZHS16GBK
    ===================================================================

    【测试脚本?br style="font-family: " /> ===================================================================
    --登陆数据?nbsp;   
         sqlplus
    qprod/qprod@paullin     
         sqlplus
    qlinpen/pengpenglin@paul

    --执行试脚本
         drop table test;
         drop table testdate;    

         create table test (id number(1), name varchar2(20));
         create table testdate (birthday date);  

         insert into test values(1,'Tom');
         insert into test values(2,'张三');
         insert into test values(3,'易徏?);
         commit;
        
         insert into testdate values(TO_Date( '01/08/2008 04:14:00 下午',
               'MM/DD/YYYY HH:MI:SS AM'));
         commit;
        
    --查看试l果    
         select * from test;
         select * from testdate;    
    ===================================================================

    【测试一Q数据库端字W集为AL32UTF8的情c?br style="font-family: " /> ===================================================================
    1.登陆数据库:
      C:\Documents and Settings\qlinpen.E0015609D6309>sqlplus qprod/qprod@paullin

    2.查看数据库字W集Q?br style="font-family: " />   SQL> select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET';    

    3.试内容及测试结果:
      1).客户端NLS_LANG讄为AMERICAN_AMERICA.US7ASCIIQ?br style="font-family: " />       中文字符试Q插?昄中文字符均ؓq
          中文日期试QORA-01855: AM/A.M. or PM/P.M. required

      2).客户端NLS_LANG讄为AMERICAN_AMERICA.WE8MSWIN1252Q?br style="font-family: " />       中文字符试Q插?昄中文字符均ؓ正常
          中文日期试QORA-01855: AM/A.M. or PM/P.M. required
        
      3).客户端NLS_LANG讄为AMERICAN_AMERICA.ZHS16GBKQ?br style="font-family: " />       中文字符试Q插?昄中文字符均ؓ正常
          中文日期试QORA-01855: AM/A.M. or PM/P.M. required
      
      4).客户端NLS_LANG讄为AMERICAN_AMERICA.AL32UTF8Q?br style="font-family: " />       中文字符试Q插?昄中文字符均ؓ正常
          中文日期试QORA-01855: AM/A.M. or PM/P.M. required
        
      5).客户端NLS_LANG讄为SIMPLIFIED CHINESE_CHINA.ZHS16GBKQ?br style="font-family: " />       中文字符试Q插?昄中文均ؓ正常
          中文日期试Q插?昄中文日期均ؓ正常Q格式ؓDD-MM-YY(例如Q?8-1?-08)  

    4.试l论Q?br style="font-family: " />   从测试结果来看,当数据库端字W集为AL32UTF8Ӟ能够使到中文字符被正插?昄的NLS_LANG的字W集为:  WE8MSWIN1252、ZHS16GBK、AL32UTF8?br style="font-family: " />   
      但是要C文格式的旉能够被正插入,则NLS_LANG的LANGUAGE和TERRITORY讄必须为:SIMPLIFIED_CHINESE_CHINA
    ===================================================================

    【测试二Q数据库端字W集为ZHS16GBK的情c?br style="font-family: " /> ===================================================================
    1.登陆数据库:
      C:\Documents and Settings\qlinpen.E0015609D6309>sqlplus qlinpen/pengpenglin@paul

    2.查看数据库字W集Q?br style="font-family: " />   SQL> select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET';    

    3.试内容及测试结果:
      1).客户端NLS_LANG讄为AMERICAN_AMERICA.US7ASCIIQ?br style="font-family: " />       中文字符试Q插?昄中文字符均ؓq
          中文日期试QORA-01855: AM/A.M. or PM/P.M. required

      2).客户端NLS_LANG讄为AMERICAN_AMERICA.WE8MSWIN1252Q?br style="font-family: " />       中文字符试Q插?昄中文字符均ؓq
          中文日期试QORA-01855: AM/A.M. or PM/P.M. required
        
      3).客户端NLS_LANG讄为AMERICAN_AMERICA.ZHS16GBKQ?br style="font-family: " />       中文字符试Q插?昄中文字符均ؓ正常
          中文日期试QORA-01855: AM/A.M. or PM/P.M. required
      
      4).客户端NLS_LANG讄为AMERICAN_AMERICA.AL32UTF8Q?br style="font-family: " />       中文字符试Q插?昄中文字符均ؓq
          中文日期试QORA-01855: AM/A.M. or PM/P.M. required
        
      5).客户端NLS_LANG讄为SIMPLIFIED CHINESE_CHINA.ZHS16GBKQ?br style="font-family: " />       中文字符试Q插?昄中文均ؓ正常
          中文日期试Q插?昄中文日期均ؓ正常Q格式ؓDD-MM-YY(例如Q?8-1?-08)  

    4.试l论Q?br style="font-family: " />   从测试结果来看,当数据库端字W集为ZHS16GBKӞ能够使到中文字符被正常插?昄的NLS_LANG的字W集为:ZHS16GBK?br style="font-family: " />   
      而且要C文格式的旉能够被正插入,则NLS_LANG的LANGUAGE和TERRITORY讄必须为:SIMPLIFIED CHINESE_CHINA
    ===================================================================

    【测试ȝ?br style="font-family: " /> ===================================================================
    从上面两个测试的l果可以明昄出,把数据库端的字符集设|ؓAL32UTF8比vZHS16GBK更加有优ѝ?br style="font-family: " />
    UTF8支持从客L应用字符集ؓWE8MSWIN1252、ZHS16GBK、AL32UTF8的环境下q行中文字符的插入,而ZHS16GBK只支持客L应用字符集ؓZHS16GBK环境下的的中文字W插入?br style="font-family: " />
    其次我们来看看日期格式ؓQ?1/08/2008 04:14:00 下午的记录ؓ什么只能在NLS_LANG的LANGUAGE和TERRITORY为SIMPLIFIED CHINESE_CHINA的情况下才能正确插入Q?br style="font-family: " />
    我们知道客户端NLS_LANG的值由3部分构成Q即<LANUAGE>_<TERRITORY>.<CHARACTERSET>Q而掌日期中月䆾和日昄的恰恰就?lt;LANGUAGE>部分Q所以很明显<LANGUAGE>为AMERICAN的情况下Q是不可能正插入的(西方用AM、PM来表CZ、下??br style="font-family: " />
    依次cLQ如果以后出现货币和数字格式、地区和计算星期及日期的习惯插入、{换失败,那么我们p查第二个元素<TERRITORY>?br style="font-family: " /> ===================================================================


    ]]>
    安装客户?监听器报错(Oracle 10g ORA-12154: TNS: could not resolve the connect identifier specified 问题解决! Q?/title><link>http://www.tkk7.com/liudawei/articles/332305.html</link><dc:creator>孤飞?/dc:creator><author>孤飞?/author><pubDate>Fri, 17 Sep 2010 07:48:00 GMT</pubDate><guid>http://www.tkk7.com/liudawei/articles/332305.html</guid><wfw:comment>http://www.tkk7.com/liudawei/comments/332305.html</wfw:comment><comments>http://www.tkk7.com/liudawei/articles/332305.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/liudawei/comments/commentRss/332305.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/liudawei/services/trackbacks/332305.html</trackback:ping><description><![CDATA[今天安装Oracle客户?监听器已l配|好 q且在Net Configuration Assistant中测试都正常Q用PLSQL试q接M成功QL报ora12541-TNS 异常信息<br /> <br /> 查了下相关东?br /> <br /> 本n的环境变量:<br /> <br /> d:\oracle\product\10.2.0\client_2\bin;<span style="color: red">d:\oracle\product\10.2.0\client_1;</span>C:\Program Files\PC Connectivity Solution\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;D:\Program Files\TortoiseSVN\bin<br /> <br /> 把红色去掉后 然成功?希望大家以后到此问?查下相关环境变量 可能Ҏ每个人安装不?环境变量不同 只保留bin目录 其他可以L? <img src ="http://www.tkk7.com/liudawei/aggbug/332305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/liudawei/" target="_blank">孤飞?/a> 2010-09-17 15:48 <a href="http://www.tkk7.com/liudawei/articles/332305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://svvnn.com" target="_blank">ȫƴȫɫȫѴƬ</a>| <a href="http://3c3w.com" target="_blank">ŮƵ</a>| <a href="http://youketech.com" target="_blank">߹ۿ</a>| <a href="http://5ggy.com" target="_blank">ɫƵ15</a>| <a href="http://qq367.com" target="_blank">˾Ʒ</a>| <a href="http://muguangmi.com" target="_blank">޾Ʒרþþ</a>| <a href="http://240842.com" target="_blank">˾Ʒֱ</a>| <a href="http://ziguang1688.com" target="_blank">40</a>| <a href="http://wwwee2.com" target="_blank">777777</a>| <a href="http://yytengsheng.com" target="_blank">͵Ƶ߹ۿ99</a>| <a href="http://yakonet.com" target="_blank">ŷһղ</a>| <a href="http://cuitccol.com" target="_blank">츾þþƷ</a>| <a href="http://cangtuyuan.com" target="_blank">þ޾Ʒ</a>| <a href="http://bjowj.com" target="_blank">þƷww47</a>| <a href="http://438266.com" target="_blank">޹ƷԲ߲</a>| <a href="http://225ck.com" target="_blank">һ߹ۿ</a>| <a href="http://www398ph.com" target="_blank">߹ۿվ</a>| <a href="http://vip98888.com" target="_blank">һƵ</a>| <a href="http://trgod.com" target="_blank">99߾ƷƵѹۿ9</a>| <a href="http://yygcui.com" target="_blank">2019Ļ</a>| <a href="http://joob4s.com" target="_blank">һëƬѲ</a>| <a href="http://alankell.com" target="_blank">ѾƷƵ</a>| <a href="http://sdcwpfw.com" target="_blank">ţƷ޳avƬ</a>| <a href="http://508009.com" target="_blank">Ʒɫʹ </a>| <a href="http://haiholr.com" target="_blank">69Ƶѹۿl</a>| <a href="http://22nee.com" target="_blank">ý̫ˬƵѹ</a>| <a href="http://gangxiangli.com" target="_blank">һ߹ۿ</a>| <a href="http://zzo8.com" target="_blank">Ƶվձ</a>| <a href="http://zcrencai.com" target="_blank">ѵĻɫվ</a>| <a href="http://xjdz8.com" target="_blank">պþëƬ</a>| <a href="http://pyjxyey.com" target="_blank">Ůxx00ƵԿ</a>| <a href="http://929119.com" target="_blank">֮4δɾ</a>| <a href="http://tj-zhongfa.com" target="_blank">avavavëƬ</a>| <a href="http://micehunan.com" target="_blank">AVרAV鶹Ѿ </a>| <a href="http://91se01.com" target="_blank">av벻߹ۿ</a>| <a href="http://www55xx.com" target="_blank">**һëƬ</a>| <a href="http://zgdhuibao.com" target="_blank">޾ƷƵ߹ۿ</a>| <a href="http://eee94.com" target="_blank">Ļ߿</a>| <a href="http://hbqueena.com" target="_blank">99þ99þþƷѿ</a>| <a href="http://020iws.com" target="_blank">AAѹۿ1000Ӱ</a>| <a href="http://bznys.com" target="_blank">Ұ¾þø</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>