??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品无码久久久久YW,亚洲国产一区二区视频网站,精品国产_亚洲人成在线http://www.tkk7.com/zqbchina/category/23801.html<p align="right" style="font-family:华文新魏; font-size:14px; color:#660000">技术知识是基础Q技术精通是目标Q体pL想是境?lt;/p>zh-cnWed, 31 Jul 2013 06:16:06 GMTWed, 31 Jul 2013 06:16:06 GMT60OVER(PARTITION BY)函数用法http://www.tkk7.com/zqbchina/articles/402194.html心砚心砚Wed, 31 Jul 2013 04:23:00 GMThttp://www.tkk7.com/zqbchina/articles/402194.html

转自Q?

http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html



OVER(PARTITION BY)函数介绍

开H函?nbsp;         
     Oracle?.1.6开始提供分析函敎ͼ分析函数用于计算Zl的某种聚合|它和聚合函数的不同之处是Q对于每个组q回多行Q而聚合函数对于每个组只返回一行?/div>

      开H函数指定了分析函数工作的数据窗口大,q个数据H口大小可能会随着行的变化而变化,举例如下Q?br style="box-sizing: border-box" />1Qover后的写法Q?span class="Apple-converted-space">    
   overQorder by salaryQ?按照salary排序q行累计Qorder by是个默认的开H函?br style="box-sizing: border-box" />   overQpartition by deptnoQ按照部门分?br style="box-sizing: border-box" />

 

   overQpartition by deptno order by salaryQ?/div>

 

2Q?/span>开H的H口范围Q?/span>
overQorder by salary range between 5 preceding and 5 followingQ:H口范围为当前行数据q度??后的范围内的?/span>

举例Q?/p>

 

--sum(s)over(order by s range between 2 preceding and 2 following) 表示??的范围内的求?/span>

 select name,class,s, sum(s)over(order by s range between 2 preceding and 2 following) mm from t2
adf        3        45        45  --45???3?7Q但是s在这个范围内只有45
asdf       3        55        55
cfe        2        74        74
3dd        3        78        158 --78?6?0范围内有78Q?0Q求和得158
fda        1        80        158
gds        2        92        92
ffd        1        95        190
dss        1        95        190
ddd        3        99        198

gf         3        99        198

 

 

 

overQorder by salary rows between 5 preceding and 5 followingQ:H口范围为当前行前后各移?行?/span>

举例Q?/p>

 

--sum(s)over(order by s rows between 2 preceding and 2 following)表示在上下两行之间的范围?br style="box-sizing: border-box" />select name,class,s, sum(s)over(order by s rows between 2 preceding and 2 following) mm from t2
adf        3        45        174  Q?5+55+74=174Q?br style="box-sizing: border-box" />asdf       3        55        252   Q?5+55+74+78=252Q?br style="box-sizing: border-box" />cfe        2        74        332    Q?4+55+45+78+80=332Q?br style="box-sizing: border-box" />3dd        3        78        379    Q?8+74+55+80+92=379Q?br style="box-sizing: border-box" />fda        1        80        419
gds        2        92        440
ffd        1        95        461
dss        1        95        480
ddd        3        99        388
gf         3        99        293

 

 

overQorder by salary range between unbounded preceding and unbounded followingQ或?
overQorder by salary rows between unbounded preceding and unbounded followingQ:H口不做限制

 

3、与over函数l合的几个函Cl?/span>

row_number()over()、rank()over()和dense_rank()over()函数的?/strong>

下面以班U成l表t2来说明其应用

t2表信息如下:
cfe        2        74
dss        1        95
ffd        1        95
fda        1        80
gds        2        92
gf         3        99
ddd        3        99
adf        3        45
asdf       3        55
3dd        3        78

select * from                                                                      
    (                                                                           
    select name,class,s,rank()over(partition by class order by s desc) mm from t2
    )                                                                           
    where mm=1Q?br style="box-sizing: border-box" />得到的结果是:
dss        1        95        1
ffd        1        95        1
gds        2        92        1
gf         3        99        1
ddd        3        99        1 

注意Q?br style="box-sizing: border-box" />    1.在求W一名成l的时候,不能用row_number()Q因为如果同班有两个q列W一Qrow_number()只返回一个结?
select * from                                                                      
    (                                                                           
    select name,class,s,row_number()over(partition by class order by s desc) mm from t2
    )                                                                           
    where mm=1Q?br style="box-sizing: border-box" />1        95        1  --95有两名但是只昄一?br style="box-sizing: border-box" />2        92        1
3        99        1 --99有两名但也只昄一?br style="box-sizing: border-box" />
    2.rank()和dense_rank()可以所有的都查扑և来:
如上可以看到采用rank可以ƈ列第一名的都查扑և来;
     rank()和dense_rank()区别Q?br style="box-sizing: border-box" />     --rank()是蟩跃排序,有两个第二名时接下来是W四名;
select name,class,s,rank()over(partition by class order by s desc) mm from t2
dss        1        95        1
ffd        1        95        1
fda        1        80        3 --直接pCW三
gds        2        92        1
cfe        2        74        2
gf         3        99        1
ddd        3        99        1
3dd        3        78        3
asdf       3        55        4
adf        3        45        5
     --dense_rank()l是连l排序,有两个第二名时仍然跟着W三?br style="box-sizing: border-box" />select name,class,s,dense_rank()over(partition by class order by s desc) mm from t2
dss        1        95        1
ffd        1        95        1
fda        1        80        2 --q箋排序Q仍?Q?br style="box-sizing: border-box" />gds        2        92        1
cfe        2        74        2
gf         3        99        1
ddd        3        99        1
3dd        3        78        2
asdf       3        55        3
adf        3        45        4

--sum()overQ)的?/strong>
select name,class,s, sum(s)over(partition by class order by s desc) mm from t2 --Ҏ班q行分数求和
dss        1        95        190  --׃两个95都是W一名,所以篏加时是两个第一名的相加
ffd        1        95        190 
fda        1        80        270  --W一名加上第二名?br style="box-sizing: border-box" />gds        2        92        92
cfe        2        74        166
gf         3        99        198
ddd        3        99        198
3dd        3        78        276
asdf       3        55        331
adf        3        45        376

first_value() over()和last_value() over()的? 



--扑ևq三条电路每条电路的W一条记录类型和最后一条记录类?/p>

SELECT opr_id,res_type,
       first_value(res_type) over(PARTITION BY opr_id ORDER BY res_type) low,
       last_value(res_type) over(PARTITION BY opr_id ORDER BY res_type rows BETWEEN unbounded preceding AND unbounded following) high
  FROM rm_circuit_route
WHERE opr_id IN ('000100190000000000021311','000100190000000000021355','000100190000000000021339')
 ORDER BY opr_id;

 

注:rows BETWEEN unbounded preceding AND unbounded following 的?/span>

--取last_value时不使用rows BETWEEN unbounded preceding AND unbounded following的结?/em>

 

SELECT opr_id,res_type,
       first_value(res_type) over(PARTITION BY opr_id ORDER BY res_type) low,
       last_value(res_type) over(PARTITION BY opr_id ORDER BY res_type) high
  FROM rm_circuit_route
 WHERE opr_id IN ('000100190000000000021311','000100190000000000021355','000100190000000000021339')
 ORDER BY opr_id;

如下囑֏以看刎ͼ如果不?em style="box-sizing: border-box">

rows BETWEEN unbounded preceding AND unbounded followingQ?/em>取出的last_value׃与res_typeq行q行排列Q因此取出的电\的最后一行记录的cd׃是按照电路的范围提取了,而是以res_type围进行提取了?/span>

 

 

 

 

 

在first_value和last_value中ignore nulls的?/em>
数据如下Q?br style="box-sizing: border-box" />

 

 

取出该电路的W一条记录,加上ignore nulls后,如果W一条是判断的那个字D|I的Q则默认取下一条,l果如下所C:

 

 

--lag() over()函数用法Q取出前n行数据)
lag(expresstion,<offset>,<default>)
with a as 
(select 1 id,'a' name from dual
 union
 select 2 id,'b' name from dual
 union
 select 3 id,'c' name from dual
 union
 select 4 id,'d' name from dual
 union
 select 5 id,'e' name from dual
) 
select id,name,lag(id,1,'')over(order by name) from a;

--lead() over()函数用法Q取出后N行数据)

lead(expresstion,<offset>,<default>)
with a as 
(select 1 id,'a' name from dual
 union
 select 2 id,'b' name from dual
 union
 select 3 id,'c' name from dual
 union
 select 4 id,'d' name from dual
 union
 select 5 id,'e' name from dual
) 
select id,name,lead(id,1,'')over(order by name) from a;

--ratio_to_report(a)函数用法 Ratio_to_report() 括号中就是分子,over() 括号中就是分?/strong>
with a as (select 1 a from dual
           union all
select 1 a from dual
           union  all
select 1 a from dual
           union all
select 2 a from dual
           union all 
select 3 a from dual
           union all
select 4 a from dual
           union all
select 4 a from dual
           union all
select 5 a from dual
           )
select a, ratio_to_report(a)over(partition by a) b from a 
order by a; 

with a as (select 1 a from dual
           union all
select 1 a from dual
           union  all
select 1 a from dual
           union all
select 2 a from dual
           union all 
select 3 a from dual
           union all
select 4 a from dual
           union all
select 4 a from dual
           union all
select 5 a from dual
           )
select a, ratio_to_report(a)over() b from a --分母~省是整个占比
order by a; 

with a as (select 1 a from dual
           union all
select 1 a from dual
           union  all
select 1 a from dual
           union all
select 2 a from dual
           union all 
select 3 a from dual
           union all
select 4 a from dual
           union all
select 4 a from dual
           union all
select 5 a from dual
           )
select a, ratio_to_report(a)over() b from a
group by a order by a;--分组后的占比

 

percent_rank用法
计算ҎQ所在组排名序号-1除以该组所有的行数-1Q如下所Cp的pr1与通过percent_rank函数得到的值是一LQ?br style="box-sizing: border-box" />SELECT a.deptno,
       a.ename,
       a.sal,
       a.r,
       b.n,
       (a.r-1)/(n-1) pr1,
       percent_rank() over(PARTITION BY a.deptno ORDER BY a.sal) pr2
  FROM (SELECT deptno,
               ename,
               sal,
               rank() over(PARTITION BY deptno ORDER BY sal) r --计算出在l中的排名序?br style="box-sizing: border-box" />          FROM emp
         ORDER BY deptno, sal) a,
       (SELECT deptno, COUNT(1) n FROM emp GROUP BY deptno) b --按部门计每个部门的所有成员数
 WHERE a.deptno = b.deptno;


 

cume_dist函数

计算ҎQ所在组排名序号除以该组所有的行数Q但是如果存在ƈ列情况,则需加上q列的个?1Q?br style="box-sizing: border-box" />          如下所Cp的pr1与通过percent_rank函数得到的值是一LQ?br style="box-sizing: border-box" />SELECT a.deptno,
       a.ename,
       a.sal,
       a.r,
       b.n,
       c.rn,
       (a.r + c.rn - 1) / n pr1,
       cume_dist() over(PARTITION BY a.deptno ORDER BY a.sal) pr2
  FROM (SELECT deptno,
               ename,
               sal,
               rank() over(PARTITION BY deptno ORDER BY sal) r
          FROM emp
         ORDER BY deptno, sal) a,
       (SELECT deptno, COUNT(1) n FROM emp GROUP BY deptno) b,
       (SELECT deptno, r, COUNT(1) rn,sal
          FROM (SELECT deptno,sal,
                       rank() over(PARTITION BY deptno ORDER BY sal) r
                  FROM emp)
         GROUP BY deptno, r,sal
         ORDER BY deptno) c --c表就是ؓ了得到每个部门员工工资的一L个数
 WHERE a.deptno = b.deptno
   AND a.deptno = c.deptno(+)
   AND a.sal = c.sal;
 

 
percentile_cont函数

含义Q输入一个百分比Q该癑ֈ比就是按照percent_rank函数计算的|Q返回该癑ֈ比位|的q_?br style="box-sizing: border-box" />如下Q输入百分比?.7Q因?.7介于0.6?.8之间Q因此返回的l果是0.6对应的sal?500加上0.8对应的sal?600q_
SELECT ename,
       sal,
       deptno,
       percentile_cont(0.7) within GROUP(ORDER BY sal) over(PARTITION BY deptno) "Percentile_Cont",
       percent_rank() over(PARTITION BY deptno ORDER BY sal) "Percent_Rank"
  FROM emp
 WHERE deptno IN (30, 60);

 

若输入的癑ֈ比ؓ0.6Q则直接0.6对应的sal|?500
SELECT ename,
       sal,
       deptno,
       percentile_cont(0.6) within GROUP(ORDER BY sal) over(PARTITION BY deptno) "Percentile_Cont",
       percent_rank() over(PARTITION BY deptno ORDER BY sal) "Percent_Rank"
  FROM emp
 WHERE deptno IN (30, 60);
 

PERCENTILE_DISC函数

功能描述Q返回一个与输入的分布百分比值相对应的数据|分布癑ֈ比的计算Ҏ见函数CUME_DISTQ如果没有正好对应的数据|取大于该分布值的下一个倹{?br style="box-sizing: border-box" />注意Q本函数与PERCENTILE_CONT的区别在找不到对应的分布值时q回的替代值的计算Ҏ不同

SAMPLEQ下例中0.7的分布值在部门30中没有对应的Cume_Dist|所以就取下一个分布?.83333333所对应的SALARY来替?br style="box-sizing: border-box" />
SELECT ename,
       sal,
       deptno,
       percentile_disc(0.7) within GROUP(ORDER BY sal) over(PARTITION BY deptno) "Percentile_Disc",
       cume_dist() over(PARTITION BY deptno ORDER BY sal) "Cume_Dist"
  FROM emp
 WHERE deptno IN (30, 60);
 

 



心砚 2013-07-31 12:23 发表评论
]]>DB2中SQLSTATE=57016 SQLCODE=-668Q原因码 "7"的解?/title><link>http://www.tkk7.com/zqbchina/articles/134702.html</link><dc:creator>心砚</dc:creator><author>心砚</author><pubDate>Mon, 06 Aug 2007 06:51:00 GMT</pubDate><guid>http://www.tkk7.com/zqbchina/articles/134702.html</guid><wfw:comment>http://www.tkk7.com/zqbchina/comments/134702.html</wfw:comment><comments>http://www.tkk7.com/zqbchina/articles/134702.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.tkk7.com/zqbchina/comments/commentRss/134702.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zqbchina/services/trackbacks/134702.html</trackback:ping><description><![CDATA[<font size="1">对表q行M操作都不被允许,提示SQLSTATE=57016 SQLCODE=-668 Q原因码 "7"的错误:SQL0668N  Operation not allowed for reason code "7" on table XXX. 解决Ҏ为:执行命oQreorg table XXXQ即可?br />参考原文ؓQ?br />Operation not allowed for reason code reason-code on table table-name.<br />Explanation: Access to table table-name is restricted. The cause is based on the following reason codes reason-code: 7<br />    The table is in the reorg pending state. This can occur after an ALTER TABLE statement containing a REORG-recommended operation.7<br />    Reorganize the table using the REORG TABLE command (note that INPLACE REORG TABLE is not allowed for a table that is in the reorg pending state).<br />其中Q?br />   reorg   table   <tablename>   通过重构行来消除“碎片”数据ƈ压羃信息Q对表进行重l?br />   runstats   on   table   <tbschema>.<tbname>   攉?  <tbname>   的统计信息?br />   reorgchk   on   table   all   定是否需要对表进行重l,对于Ҏ有表自动执行   runstats   很有用?br />  >>> reorg   和runstats   都是单个表优化,初始化的命oQ?br />           runstats on table administrator.test;<br />           reorg table administrator.test; </font><img src ="http://www.tkk7.com/zqbchina/aggbug/134702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zqbchina/" target="_blank">心砚</a> 2007-08-06 14:51 <a href="http://www.tkk7.com/zqbchina/articles/134702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DB2中UDF的SQLSTATE=42884 问题http://www.tkk7.com/zqbchina/articles/134678.html心砚心砚Mon, 06 Aug 2007 05:07:00 GMThttp://www.tkk7.com/zqbchina/articles/134678.htmlhttp://www.tkk7.com/zqbchina/comments/134678.htmlhttp://www.tkk7.com/zqbchina/articles/134678.html#Feedback0http://www.tkk7.com/zqbchina/comments/commentRss/134678.htmlhttp://www.tkk7.com/zqbchina/services/trackbacks/134678.html写了一个很单的函数Q传入参数characterQ结果执行报错:SQLSTATE ==>42884 Q将传入参数改ؓQvarchar型就ok了?br />在一chm文章中发C有这个提C,但也没有l出原因Q原文:Use VARCHAR types for character string input in UDF definitions.

心砚 2007-08-06 13:07 发表评论
]]>
DB2中的存储q程和函?/title><link>http://www.tkk7.com/zqbchina/articles/132112.html</link><dc:creator>心砚</dc:creator><author>心砚</author><pubDate>Tue, 24 Jul 2007 09:39:00 GMT</pubDate><guid>http://www.tkk7.com/zqbchina/articles/132112.html</guid><wfw:comment>http://www.tkk7.com/zqbchina/comments/132112.html</wfw:comment><comments>http://www.tkk7.com/zqbchina/articles/132112.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/zqbchina/comments/commentRss/132112.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zqbchina/services/trackbacks/132112.html</trackback:ping><description><![CDATA[<font size="1">q个DB2快把人折腾死了,楞是不知道函数和存储q程是怎么写的。今天弄了一个多时写了一个函敎ͼ赶快C来:<br />DROP FUNCTION myfunction;<br />CREATE FUNCTION myfunction(idvalue int) returns varchar(10)<br />language sql<br />specific myfunction<br />  f:begin <font style="BACKGROUND-COLOR: #0000ff">atomic --注意q个关键字:</font></font> <font size="1"> <font style="BACKGROUND-COLOR: #7fffd4"> <font style="BACKGROUND-COLOR: #7fffd4">the body of the function is wrapped with <tt><font face="Arial">BEGIN ATOMIC</font></tt></font> <br /> </font>    declare v_id int;<br />    declare v_name char(7);<br />    set (v_id,v_name) = (<br />      select id,name<br />        from test<br />        where id = idvalue);<br />    return v_name||char(v_id);<br />  end f;<br /><br /><br />NNDQ不知道是我机器环境的问题,q是DB2太变态:在执行table functionӞ一定要赋予一个别名么Q?br />select * from table(mytabfunc2(1))<font style="BACKGROUND-COLOR: #ffff00"><strong> as b --竟然不要都不行!Q!</strong></font><br /><br />DB2 江湖黑话QUDFQUser-Defined Functions<br />                              LUWQLinux 、Unix、Windows<br /><br /></font><img src ="http://www.tkk7.com/zqbchina/aggbug/132112.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zqbchina/" target="_blank">心砚</a> 2007-07-24 17:39 <a href="http://www.tkk7.com/zqbchina/articles/132112.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DB2常用命o?/title><link>http://www.tkk7.com/zqbchina/articles/131516.html</link><dc:creator>心砚</dc:creator><author>心砚</author><pubDate>Fri, 20 Jul 2007 08:33:00 GMT</pubDate><guid>http://www.tkk7.com/zqbchina/articles/131516.html</guid><wfw:comment>http://www.tkk7.com/zqbchina/comments/131516.html</wfw:comment><comments>http://www.tkk7.com/zqbchina/articles/131516.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/zqbchina/comments/commentRss/131516.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zqbchina/services/trackbacks/131516.html</trackback:ping><description><![CDATA[     摘要: DB2 常用命o? 1Q? 关闭 db2 ...  <a href='http://www.tkk7.com/zqbchina/articles/131516.html'>阅读全文</a><img src ="http://www.tkk7.com/zqbchina/aggbug/131516.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zqbchina/" target="_blank">心砚</a> 2007-07-20 16:33 <a href="http://www.tkk7.com/zqbchina/articles/131516.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DB2常用操作http://www.tkk7.com/zqbchina/articles/131504.html心砚心砚Fri, 20 Jul 2007 07:51:00 GMThttp://www.tkk7.com/zqbchina/articles/131504.htmlhttp://www.tkk7.com/zqbchina/comments/131504.htmlhttp://www.tkk7.com/zqbchina/articles/131504.html#Feedback0http://www.tkk7.com/zqbchina/comments/commentRss/131504.htmlhttp://www.tkk7.com/zqbchina/services/trackbacks/131504.htmld:\winnt\system32\drivers\etc\services文g是对机器名到IP地址的解析?br />d:\winnt\system32\drivers\etc\hosts文g是对端口名到端口L解析?br />以上两条上非DB2的,但在DB2中用到?/p>

db2admin start 起动DB2理

DB2里对一个命令的HELP?
>db2 ? 该命?/p>

db2 q接到远E数据库
W一步徏一个结点:
>db2 catalog tcpip node l点?remote 数据库服务器IP地址 server 端口(50000)
W二步徏一个到库的联结别名Q?br />>db2 catalog db 库名 as 别名 at node l点?br />W三步徏立联l:
>db2 connect to 别名 user 用户?using 用户密码
断开联结Q?br />db2 connect reset


db2里需要用C个系l环境变量:db2codepageQ?~省值是1386Q此值非帔R要,客户端于数据库端的db2codepage不一h客户端就无法q上数据库端?/p>

DB2里一个表的全名是Qschema.表名Q缺什情况下不同的用户看到的表是不一LQ?br />在程序的sql语句里必需用表的全?切记)?/p>

查看有哪些程序在使用该数据库Q?br />>db2 list application
其结果中有一个字Dapplication-handle在杀死该引用中用?/p>

杀M个程序对该数据库的?
>db2 force application {all | (application-handle)}

在库被用时db2stop不能执行

DB2命o后所带参敎ͼ
-t 以;作ؓ一句结?br />-f 指向一个文?x行一个文件中的语句,在commandH口里有些命令无法执行,可先用notepadZ个文件然后执行它)
-v (我不知道是什?
注释Q?v用于昄当前所执行的sql命o?br />


一个windows nt 里的一般用户可以连到库Q但无一般SQL语句的执行权Q授权给一个用P
>db2 grant sql语句(例如Qselect) on 表名 to user 用户?br />取消该用L权:
>db2 revoke sql语句 on 表名 from 用户?/p>


DB2日志有两U:循环日志和永久型日志
循环日志Q有3个文件@环写Q所以会产生以前的操作记录被覆盖。好处:日志文g大小不变Q备份方便,但不可以在线备䆾?br />怹日志Q其日志文g不断增涨Q但操作记录不会被覆盖,可以在线备䆾?/p>

如何备䆾Q?br />>db2 backup db 数据库名 to 讑֤?如:c:\);
恢复Q?br />>db2 restore db 数据库名 from 讑֤?br />(回滚rollforward我不太清?
注释Qrollforword 是前滚的意思,向前到某一个时_以保持数据的一致性,用于在线备䆾后的恢复Q恢复是从log日志中开始到日志中的某一个时_卛_。只有在数据一致性得C证的情况下,才能l箋Ҏ据库操作?/p>

q接到数据库时报回滚错误
用下面的命oQ?br />db2 rollforward db fmisadd to end of logs and complete

导出导入数据库:
--export
db2move hadb export -u userid -p password;
--import
db2move hadb import -u userid -p password;


导出库中表的数据Q?br />>export to 文g?ixf of ixf select * from 表名
>import from 文g?ixf of ixf create into 表名
导出库的数据格式q有两种del(文g格式)和wsfQ但ixf格式信息最全,包含表结构信息,可恢复出已删ȝ表?/p>

sql的inner/left/right/full joinQ这些概念在<<数据库概?gt;>中有说明Qleft以左表ؓ主,right以右表ؓ主,full左右表记录都会在查寻l果中?br />例如Q?gt;select aa,bb from db1 left join db2 on db1.id=db2.id


合ƈ查寻Q把两个或几个查ȝ果合q到一个字D?条g是字D必d?
格式Qselect ...... union select ....Q?/p>

使用临时表:
with tmptable (字段1Q?..) as (select....)   --Z个时表
select 字段1,.... from tmptable,另一个表 where....   --使用该时表于另一个表交叉查寻?br />**order by 必需出现在结果集Q在临时表中不能用?/p>

截取字符?br />substr(字段?开始位|?字符个数)

判断是否是空
字段?is null


例子Q?br />C么时候活?0000?
select distinct date('1980-01-01')+10000 day from a
一共活了多天:
select distinct days(current date)-days(date('1980-01-01')) from a

cd转换Q用cast ,例:
select distinct cast(current date as char(10))||'aa' from a

case的用:
select case when length(rtrim(学历))=0 then '未知学历' else xl end,rs from a
例:查寻一个公司的q龄分布Q?br />with tmptable as (select case when year(current day)-csrq<20 then '于20?                                                    when year(current day)-csrq<25 then '20-24?                                                     when year(current day)-csrq<30 then '25-29?
                              when year(current day)-csrq<35 then '30-34?
                              when year(current day)-csrq<40 then '35-39?
                              when year(current day)-csrq<45 then '40-44?
                              when year(current day)-csrq<50 then '45-49? else '大于50? end
as x from a)
select x,count(*) from tmptable group by x;

一个数据库中有些系l徏的表是用来保存该库各U信息的Q如Qsyscat.tables
例:查有多少个userid的表Q?
select count(*) from syscat.tables where type='T' and tabschema='uerid'
例:产生一个备分库中所有表的文本:
select 'export to '|| tabname || '.ixf of ixf select * from userid.' ||tabname||';' from syscat.tables where type='T' and tabschema='userid';

 

性能调整Q?br />影响到DB2性能的有Q?br />能够利用服务器的性能Q?.q行?2.减少通信

建立Index
  <,>,=      W一cL索谓词,
  <>,like    W二cL索谓词,
  需要用函数 W三cL索谓词,

select * from a
*量要哪个字D写哪个字段?/p>

blocking的概念    ?客户端请求一ơ,数据库返回n个记录?/p>

复合型SQL(我不太清?
注释Q是指他所讲的联结unionQ徏立时表{复杂的sql语句?/p>

DB2会对SQL语句优化Q系l对表的信息知道的越多,优化好Q所以要做runstats
runstats命o把表的信息告诉系l,一般当数据量增加一倍时用该命o一ơ?/p>

REORG命o是数据库整理Q类g盘片整理?/p>


得到该instance的各U参敎ͼ(dbm cfg是整个DB2的参敎ͼdb cfg是对某个数据库的参数)
>db2 get dbm cfg
>db2 get db cfg for 数据库名
修改参数Q?br />>db2 update dbm cfg using 参数 你要的数
>db2 update db cfg for 数据库名 using 参数 你要的数

 

当第一个用戯l到该数据库时会甌一个内存缓Ԍ默认?50|?k?M?br />Buffer pool size<4K>  [BUFFPAGE]=250
修改该|
>db2 update db cfg for test using buffpage 你要的数
但它的有效还取决于syscat.bufferpools中的npages是否?1Qؓ-1时它才有效,否则以syscat.bufferpols中的npage为准?br />可用下面的命令看Q?br />>select * from syscat.bufferpools
一般此值的讄应ؓpȝ内存?0Q左叻I太大时会使系l因动用虚拟内存从而太吃力?/p>

sql语句的优化别:一般取2?Q最高ؓ9Q?br />Default query optinization class      <DFT_QUENYOPT>=5
该D大优化越好,但优化所化时间也长?/p>

q行性设|:
Degree=-1 q行性全由操作系l完成?br />当操作系l有q行处理ӞDegree=-1
*****CUP与硬盘的个数一般ؓ1:4?:6;

用户最大连l数Q?br /><MAXAPPLS>=40
BUFFPAGE与MAXPPLS的关p:BUFFPAGE>2*MXAPPLS

文章出处Q?http://tb.blog.csdn.net/TrackBack.aspx?PostId=290057



心砚 2007-07-20 15:51 发表评论
]]>
SQLSTATE 消息http://www.tkk7.com/zqbchina/articles/131458.html心砚心砚Fri, 20 Jul 2007 06:04:00 GMThttp://www.tkk7.com/zqbchina/articles/131458.htmlhttp://www.tkk7.com/zqbchina/comments/131458.htmlhttp://www.tkk7.com/zqbchina/articles/131458.html#Feedback0http://www.tkk7.com/zqbchina/comments/commentRss/131458.htmlhttp://www.tkk7.com/zqbchina/services/trackbacks/131458.htmlSQLSTATE 消息

本节列示 SQLSTATE 及其含义。SQLSTATE 是按cM码进行分l的Q对于子代码Q请参阅相应的表?/p>

?2. SQLSTATE cM?c?
代码  
含义 要获得子代码Q?
参阅...
00 完全成功完成 ?3
01 警告 ?4
02 无数??5
07 动?SQL 错误 ?6
08 q接异常 ?7
09 触发操作异常 ?8
0A 功能部g不受支持 ?9
0D 目标cd规范无效 ?10
0F 无效标记 ?11
0K RESIGNAL 语句无效 ?12
0N SQL/XML 映射错误 ?13
20 找不?CASE 语句的条??15
21 基数q例 ?16
22 数据异常 ?17
23 U束q例 ?18
24 无效的游标状??19
25 无效的事务状??20
26 无效 SQL 语句标识 ?21
28 无效权限规范 ?23
2D 无效事务l止 ?24
2E 无效q接名称 ?25
34 无效的游标名U??26
36 游标灉|度异??27
38 外部函数异常 ?28
39 外部函数调用异常 ?29
3B SAVEPOINT 无效 ?30
40 事务回滚 ?31
42 语法错误或访问规则违??32
44 WITH CHECK OPTION q例 ?33
46 Java DDL ?34
51 无效应用E序状??35
53 无效操作数或不一致的规范 ?36
54 出 SQL 限制Q或出产品限制 ?37
55 对象不处于先x件状??38
56 其他 SQL 或品错??39
57 资源不可用或操作员干??40
58 pȝ错误 ?41
5U 实用E序 ?42

cM?00 完全成功完成
?3. cM?00Q完全成功完?SQLSTATE 值 ?
含义
00000 操作执行成功Qƈ且未产生Mcd的警告或异常情况?

cM?01 警告
?4. cM?01Q警?SQLSTATE 值 ?
含义
01002 发生 DISCONNECT 错误?
01003 从列函数的参数消?NULL 倹{?
01004 字符串值在指定l具有较短长度的另一字符串数据类型时被截断?
01005 SQLDA 中的条目C够?
01007 未授予特权?
0100C 从过E返回了一个或多个Ҏl果集?
0100D 关闭的游标已在链中的下一个结果集上重新打开?
0100E 生成的过E大于允许的最大结果集数目。只有第一个整数结果集已经q回到调用者?
01503 l果列数比提供的L变量数大?
01504 UPDATE ?DELETE 语句不包?WHERE 子句?
01506 ?DATE ?TIMESTAMP D行了调整Q以更正术q算得出的无效日期?
01509 ׃用户虚拟Z的存储器不够Q取消游标的分块?
01515 已ؓL变量指定了一个空|因ؓ列的非空g在主机变量的范围之内?
01516 已忽略不可用?WITH GRANT OPTION?
01517 用替代字W替换不能{换的字符?
01519 已ؓL变量指定了一个空|因ؓ数字D围?
01524 列函数的l果不包括由术表达式求值得出的I倹{?
01526 隔离U别已升U?
01527 SET 语句引用的专用寄存器?AS 上不存在?
01539 q接成功但只应?SBCS 字符?
01543 已忽略重复约束?
01545 未限定列名已解释为相兛_用?
01550 索引未创建,因ؓh指定描述的烦引已l存在?
01560 忽略了一个冗余的 GRANT?
01562 在数据库配置文g中的新日志\径(newlogpthQ无效?
01563 日志文g的当前\径(logpathQ无效。日志文件\径被复位为缺省倹{?
01564 已ؓL变量指定了空|因ؓ发生了被雉的错误?
01586 该语句导致一个或多个表自动置于设|完整性暂挂状态?
01589 语句包含有冗余规范?
01592 在引?SOURCE 函数?CREATE FUNCTION 语句中,或:
输入参数的长度、精度或数位大于源函数相应参数的长度、精度或数位;?
RETURNS ?CAST FROM 参数的长度、精度或数位比源函数的;?
CREATE FUNCTION 语句中的 CAST FROM 参数的长度、精度或数位比 RETURNS 参数的大?br />q行时可能发生截断(那时可能会引起错误)?
01594 对于所有信息,SQLDA 内的条目C够多Q即Q没有够的描述W返回相异名Uͼ?
01595 该视囑ַ替换现有无效视图?
01596 没有为基于长字符串数据类型的单值类型创建比较函数?
01598 试ȀzL动的事g监视器,或尝试释放不zd的事件监视器?
01599 忽略 REBIND 上的l定选项?
01602 优化U别已降低?
01603 CHECK DATA 处理q程中发现约束违例,已将其移臛_常表?
01604 已经说明?SQL 语句Q但是未执行它?
01605 递归公共表表辑ּ可能包含无限循环?
01606 节点或系l数据库目录是空的?
01607 只读事务中节点的旉差超q定义的阈倹{?
01608 已经替换了不受支持的倹{?
01609 生成的过E大于允许的最大结果集数目。只有第一个整数结果集已经q回到调用者?
01610 从过E返回了一个或多个Ҏl果集?
01611 关闭的游标已在链中的下一个结果集上重新打开?
01614 定位器数于l果集数?
01616 估计?CPU 成本出了资源限制?
01618 重新分发节点l是更改数据库分区所必需的?
01620 UNION ALL 的某些基本表可能是同一个表?
01621 索到?LOB 值可能已更改?
01622 语句成功完成Q但在语句完成之后发生了pȝ错误?
01623 忽略 DEGREE 的倹{?
01625 模式名在 CURRENT PATH 中出C多次?
01626 数据库只有一个活动的~冲池?
01627 DATALINK 值可能无效,因ؓ该表处理协调暂挂或协调不可能的状态?
01632 q发q接数超Z该品的定义授权?
01633 可能不能使用具体化查询表来优化查询的处理?
01636 数据库管理器一直未验证非增量数据的完整性?
01637 未启用调试?
01639 联合对象可能需要调用程序具有对数据源对象的必要Ҏ?
01641 Datalink cd属性限制结构化cd的用?
01642 对于最大的可能 USER ~省|列不_ѝ?
01643 ?SQL 例程?SQLSTATE ?SQLCODE 变量的赋值可能会被覆盖,不会ȀzMQ何处理程序?
01645 SQL q程的可执行文g未保存在数据库目录中?
01648 忽略?COMPRESS 列属性,因ؓ对表取消ȀzM VALUE COMPRESSION?
01649 ~冲池操作已l完成,但是直到下一ơ数据库重新启动才会生效?
01650 索引和表l计信息不一致?
01651 成功ȀzM事g监视器,但是某些监视信息可能丢失了?
01652 ׃语句上下文而忽略了隔离子句?
01653 权限授予l?USER。因为权限名U大?8 字节Q所以不考虑l?
01654 未启动缓冲池?
01655 成功创徏了事件监视器Q但是至有一个事件监视器目标表已存在?
01657 ~冲池操作在下一ơ数据库重新启动之后才会生效?
01665 列名或参数名被截断?
01667 可能不能使用视图来优化查询的处理?
01669 ׃q程目录与本地目录之间的模式不一_因此Q未d更新指定늧的统计信息?
01670 Ҏ表来_不存在缺省主表空间?
01671 高速缓存的语句的环境与当前环境不同。将使用当前环境来重C化指定的语句?
01674 表空间属性对于查询性能不是最佳的?
01675 指定的表I间数超q了需要的表空间数。多余的表空间将被忽略?
01676 忽略了传送操作,因ؓ授权标识已经是数据库对象的所有者?
01677 对于已经定义了插件的服务器忽略了包装器选项?
01678 对用h的更改只应用于联合目录表,而不应用于外部用h存储库?
01679 无法为指定的授权标识建立可信q接?
01684 不支持指定的语言环境。返回的消息使用的是p语言环境?
01686 表空间正在从 REGULAR 转换?LARGE。必d此表I间中的表的索引q行重组或重建,以便支持大型 RID?
01689 在未q接到数据源的情况下完成?SQL ~译?
0168A 在数据源上找不到源过E的E序包主体,或者它无效?
01H51 “MQSeries 应用E序消息传递接口”消息被截断?
01H52 例程的执行已完成Q但是执行期间至遇C一个错误或警告。提供了更多信息?
01H53 例程遇到了警告。参?SQLCODE 以获取详l信息?
01HXX q户定义的函数或外部过E?CALL q回了有效警?SQLSTAE?

cM?02 无数?br />?5. cM?02Q无数据 SQLSTATE 值 ?
含义
02000 发生下述异常之一Q?
SELECT INTO 语句?INSERT 语句的子查询的结果ؓI?
在搜索的 UPDATE ?DELETE 语句内标识的行数为零?
?FETCH 语句中引用的游标位置处于l果表最后一行之后?br /> 
02501 游标位置对于当前行的 FETCH 无效?
02502 到删除或更新孔
02506 遇到了错误,q且已按 RETURN DATA UNTIL 子句指定那样容许它?

cM?07 动?SQL 错误
?6. cM?07Q动?SQL 错误 SQLSTATE 值 ?
含义
07001 对于参数标记的数目来_L变量的数目不正确?
07002 调用参数列表或控制块无效?
07003 ?EXECUTE 语句内标识的语句是一?select 语句Q或未处于已预编译状态?
07004 动态参数需?USING 子句?INTO 子句?
07005 游标的语句名标识的是一个不能与游标兌的已预编译语句?
07006 ׃其数据类型的~故不能使用某输入主机变量?

cM?08 q接异常
?7. cM?08Q连接异?SQLSTATE 值 ?
含义
08001 应用E序h器不能徏立连接?
08002 q接已存在?
08003 q接不存在?
08004 应用E序服务器拒l了建立q接?
08007 事务解析未知?
08502 ?TWOPHASE ?SYNCPOINT q行的应用程序进E发出的 CONNECT 语句无效Q因为无事务理器可用?
08504 当处理指定的路径重命名配|文件时遇到错误?

cM?09 触发操作异常
?8. cM?09Q触发操作异?SQLSTATE 值 ?
含义
09000 触发 SQL 语句p|?

cM?0A 不支持功能部?br />?9. cM?0AQ不支持功能部g SQLSTATE 值 ?
含义
0A001 CONNECT 语句无效Q因E不处于可连接状态?
0A502 未对此数据库实例启用操作?
0A503 ׃潜在的数据不一_不能~译联合插入、更新或删除操作?

cM?0D 目标cd规范无效
?10. cM?0DQ目标类型规范无?SQLSTATE 值 ?
含义
0D000 目标l构化数据类型规范是源结构化数据cd的正子cd?

cM?0F 无效标记
?11. cM?OFQ无效标?SQLSTATE 值 ?
含义
0F001 LOB 标记变量当前不表CZQ何倹{?

cM?0K RESIGNAL 语句无效
?12. cM?0KQRESIGNAL 语句无效 SQLSTATE 值 ?
含义
0K000 RESIGNAL 语句不在处理E序中?

cM?0N SQL/XML 映射错误
?13. cM?0NQSQL/XML 映射错误 SQLSTATE 值 ?
含义
0N002 无法字W映至有效 XML 字符?

cM?10 XQuery 错误
?14. cM?10QXQuery 错误 SQLSTATE 值 ?
含义
10000 XQuery 错误?
10501 XQuery 表达式缺静态或动态上下文lg的指定?
10502 ?XQuery 表达式的序言中遇C错误?
10503 ?XQuery ?XPath 表达式中定义了重复的名称?
10504 在无?URI 中指定了 XQuery 名称I间声明?
10505 字符、标记或子句?XQuery 表达式中~少了或者无效?
10506 XQuery 表达式引用了一个未定义的名U?
10507 处理 XPath ?XQuery 表达式时遇到了类型错误?
10508 XQuery 表达式在已计的构造函C包括一个无效的名称表达式?
10509 指定了不受支持的 XQuery 语言功能部g?
10510 未指定字W串文字作ؓ强制cd转换表达式操作数或构造函数参数?
10601 在处?XQuery 函数或运符旉C术错误?
10602 在处?XQuery 函数或运符旉C数据cd转换错误?
10603 在处?XQuery 函数或运符旉C字符处理错误?
10604 未提供文档上下文来处?XQuery 函数?
10605 在处?XQuery 函数或运符旉C日期旉错误?
10606 没有上下文项用来处理 XQuery 函数或运符?
10607 在处?XQuery 函数或运符旉C名称I间错误?
10608 ?XQuery 函数或运符的参C遇到了错误?
10609 在处?XQuery 函数或运符旉C正则表达式错误?
10610 在处?XQuery 函数或运符旉Ccd错误?
10611 在处?XQuery 函数或运符旉C未标识的错误?
10901 XQuery 原子DZ DB2 XQuery 数据cd的范围?
10902 XQuery 原子Dq了 DB2 XQuery q算W或函数的长度限制?
10903 已超q相匚w?XQuery 节点数的内部限制?

cM?20 找不?CASE 语句的条?br />?15. cM?20Q找不到 Case 语句的条?SQLSTATE 值 ?
含义
20000 找不?CASE 语句的条件?

cM?21 基数q例
?16. cM?21Q基数违?SQLSTATE 值 ?
含义
21000 SELECT INTO 的结果是一个多行的l果表,或者,基本谓词的子查询l果为多个倹{?
21501 对自引用表进行多?INSERT 是无效的?
21502 主键的多?UPDATE 是无效的?
21504 从删除规则ؓ RESTRICT ?SET NULL 的自引用表进行多?DELETE 是无效的?
21505 行函数返回的内容不能过一行。 
21506 表的同一行不能是多个更新、删除或插入操作的目标?

cM?22 数据异常
?17. cM?2Q数据异?SQLSTATE 值 ?
含义
22001 字符数据Q发生右截断Q例如,更新或插入值对于列来说太长Q字W串Q,或者日期时间值由于太而不能赋l主机变量?
22002 到I值或~少指示W参敎ͼ例如Q不能将IDl主机变量,因ؓ没有指定指示W变量?
22003 数D围?
22004 不能从定义ؓ PARAMETER STYLE GENERAL 的过E或者从用非I参数调用的cd保留Ҏ中返回空倹{?
22007 到无效的日期时间格式;x定了无效的字W串表示法或倹{?
22008 发生日期旉字段溢出Q例如,Ҏ期或旉戌术q算的结果不在有效日期范围之内?
2200G 大多数特定类型都不匹配?
2200L XML g是具有单个根元素的结构良好的文档?
2200M 未能g为结构良好的 XML 文档q行解析或者根?XML 模式来验证该倹{?
2200S XML 注释无效?
2200T XML 处理指o无效?
2200W XML 值包含未能序列化的数据?
22011 发生子字W串错误Q例如,SUBSTR 的参数超围?
22012 用零作除数是无效的?
22018 对于 CAST、DECIMAL、FLOAT、或 INTEGER 标量函数Q字W值是无效的?
22019 LIKE 谓词有无效{义字W?
22021 某字W不在编码字W集中?
22024 ?NUL l束的输入主机变量或参数不包?NUL?
22025 LIKE 谓词字符串模式包含无效的转义字符?
2202D 配合 mutator Ҏ使用了空实例?
2202H ?TABLESAMPLE 子句中指定的h大小无效?
22501 变长字符串的长度控制字段值或大于最大倹{?
22504 混合数据值是无效的?
22506 Ҏ期时间专用寄存器的引用无效,因ؓ TOD 旉发生故障或操作系l时区参数超围?
22522 CCSID 值根本无效,Ҏ据类型或子类型无效,或对~码Ҏ无效?
22525 数据分区键值无效?
22526 键变换函数没有生成Q何行或生成了重复的行?
22527 对多?INSERT 操作到了无效的输入数据?
22532 ?XML 模式存储库中未找?XSROBJECT?
22533 ?XML 模式存储库中未找到唯一?XSROBJECT?
22534 XML 模式文档未通过使用包括或重新定义而连接至其他 XML 模式文档?
22535 XML 模式未声明指定的全局元素?
22536 XML g包含必需的根元素?
225D1 未启用指定的 XML 模式以进行分解?
225D2 在分?XML 文档期间发生?SQL 错误?
225D3 分解 XML 文档旉C对于 XML 模式cd无效的倹{?
225D4 分解 XML 文档旉C对于目标 SQL cd无效的倹{?
225D5 分解 XML 文档旉C上下文中未知或无效的 XML 节点?
225D6 指定?XML 模式需要迁Ud当前版本以支持分解?
225D7 分解 XML 文档旉C一个根元素Q该根元素不?XML 模式中的复杂cd的全局元素?
225DE 无法启用 XML 模式以进行分解?

cM?23 U束q例
?18. cM?23Q约束违?SQLSTATE 值 ?
含义
23001 RESTRICT 更新或删除规则防止父键被更新或删除?
23502 插入或更新gؓI,但该列不能包含空倹{?
23503 外键的插入或更新值无效?
23504 NO ACTION 更新或删除规则防止父键被更新或删除?
23505 发生由唯一索引或唯一U束强加的约束违例?
23510 使用?RLST 表强加的命o时发生约束违例?
23511 不能删除父行Q因为检查约束限制该删除?
23512 不能d查约束,因ؓ该表含有不满约束定义的行?
23513 INSERT ?UPDATE 的结果行不符合检查约束定义?
23514 查数据处理中发现U束q例?
23515 未能创徏唯一索引Q或者不能添加唯一U束Q因表包含指定键的重复倹{?
23520 不能定义外键Q因为其所有的值都不同于父表的爉?
23521 对目录表的更新违反了内部U束?
23522 标识列值的范围或者序列用完?
23523 已经为安全标号列提供了无效倹{?
23524 UNION ALL 视图内的无效行移动?
23525 未能插入或更?XML |q是因ؓ在插入或更新 XML 列的索引期间到错误?
23526 未能创徏 XML 列的索引Q因为在?XML 值插入到索引中时到错误?

cM?24 无效的游标状?br />?19. cM?24Q无效的游标状?SQLSTATE 值 ?
含义
24501 标识的游标未打开?
24502 ?OPEN 语句中标识的游标已经打开?
24504 ?UPDATE、DELETE、SET ?GET 语句中标识的游标未定位在行上?
24506 ?PREPARE 中标识的语句是一个打开游标语句?
24510 对一个删除孔或更新孔试?br />
UPDATE ?DELETE 操作?
24512 l果表与基本表不一致?
24513 不允?FETCH NEXT、PRIOR、CURRENT ?RELATIVEQ原因是游标位置未知?
24514 先前的错误已用此游标?
24516 已对l果集指定了一个游标?
24517 外部函数或方法将游标保持为打开?

 

cM?25 无效的事务状?br />?20. cM?25Q无效的事务状?SQLSTATE 值 ?
含义
25000 插入、更新或删除操作在指定它的上下文中无效?
25001 该语句只允许作ؓ工作单元的第一条语句?
25501 该语句只允许作ؓ工作单元的第一条语句?
25502 操作在单个事务中不能多次出现?

cM?26 无效 SQL 语句标识
?21. cM?26Q无?SQL 语句标识 SQLSTATE 值 ?
含义
26501 标识的语句不存在?

cM?27 触发的数据更改违?br />?22. cM?27Q触发的数据更改q例 SQLSTATE 值 ?含义
27000 试图在同一 SQL 语句中多ơ更改同一个表中的同一行?

cM?28 无效权限规范
?23. cM?28Q无效权限规?SQLSTATE 值 ?
含义
28000 权限名称无效?

cM?2D 无效事务l止
?24. cM?2DQ无效事务终?SQLSTATE 值 ?
含义
2D521 SQL COMMIT ?ROLLBACK 在当前操作环境中无效?
2D522 ATOMIC 复合语句中不允许 COMMIT ?ROLLBACK?
2D528 动?COMMIT 对于应用E序执行环境无效?
2D529 动?ROLLBACK 对于应用E序执行环境无效?

cM?2E 无效q接名称
?25. cM?2EQ无效连接名U?SQLSTATE 值 ?
含义
2E000 q接名称无效?

cM?34 无效的游标名U?br />?26. cM?34Q无效的游标名称 SQLSTATE 值 ?
含义
34000 游标名无效?

cM?36 无效游标规范
?27. cM?36Q无效游标规?SQLSTATE 值 ?
含义
36001 不能为指定的 SELECT 语句定义敏感游标?

cM?38 外部函数异常
?28. cM?38Q外部函数异?SQLSTATE 值 ?
含义
38XXX 外部例程或触发器q回有效错误 SQLSTATE?
38001 不允许外部例E执?SQL 语句?
38002 例程试修改数据Q但例程未定义ؓ MODIFIES SQL DATA?
38003 例程中不允许该语句?
38004 例程试d数据Q但例程未定义ؓ READS SQL DATA?
38501 Q?SIMPLE CALL ?SIMPLE CALL WITH NULLS 调用U定Q调用用户定义的函数、外部过E或触发器时出错?
38502 不允许外部函数执?SQL 语句?
38503 用户定义的函数异常终止(abendQ?
38504 用户定义的函数已被用户中断,以停止可能的循环条g?
38505 FINAL CALL 上的例程中不允许 SQL 语句?
38506 函数因来?OLE DB 提供E序的错误而失败?
38552 SYSFUN 模式Q由 IBM 提供Q中的函数已异常l止?
可以在消息正文中扑ֈ下列原因码之一Q?

01
数D?
02
被零?
03
术溢出或下?
04
日期格式无效
05
旉格式无效
06
旉戌格式无效
07
旉戌持箋旉的字W表C法无效
08
旉间隔cd无效Q必L 1????6?2?4?28?56 之一Q?
09
字符串太?
10
字符串函C的长度或位置出范围
11
点数的字符表示法无效?
38553 pȝ模式中的例程已因错误而终止?
38H01 MQSeries 函数未能初始化?
38H02 MQSeries 的“应用程序消息传递接口”未能终止会话?
38H03 MQSeries 的“应用程序消息传递接口”未能正地处理消息?
38H04 MQSeries 的“应用程序消息传递接口”未能发送消息?
38H05 MQSeries 的“应用程序消息传递接口”未能读取/接收消息?
38H06 MQSeries 的“应用程序消息传递接口”预订(不预订)hp|?
38H07 MQSeries 的“应用程序消息传递接口”未能落实工作单元?
38H08 MQSeries 的“应用程序消息传递接口”策略错误?
38H09 MQSeries XAQ两阶段落实QAPI 调用错误?
38H0A MQSeries 的“应用程序消息传递接口”未能回滚工作单元?

cM?39 外部函数调用异常
?29. cM?39Q外部函数调用异?SQLSTATE 值 ?
含义
39001 用户定义的函数已q回无效 SQLSTATE?
39004 不允?IN ?INOUT 参数为空倹{?
39501 与参数相兌?eye-catcherQ引人注目的事物Q已被修攏V?

cM?3B SAVEPOINT 无效
?30. cM?3BQSAVEPOINT 无效 SQLSTATE 值 ?
含义
3B001 保存Ҏ效?
3B002 已经辑ֈ最大保存点数目?
3B501 到重复的保存点名?
3B502 指定?RELEASE ?ROLLBACK TO SAVEPOINTQ但是保存点不存在?
3B503 在触发器或全局事务中不允许 SAVEPOINT?RELEASE SAVEPOINT ?ROLLBACK TO SAVEPOINT?

cM?40 事务回滚
?31. cM?40Q事务回?SQLSTATE 值 ?
含义
40001 发生了伴随自动回滚的时或死锁?
40003 语句完整性未知?
40504 ׃pȝ错误D工作单元被回滚?
40506 ׃ SQL 错误Q当前事务已回滚?
40507 ׃创徏索引时发生故障,因此当前事务已回滚?

cM?42 语法错误或访问规则违?br />?32. cM?42Q语法错误或讉K规则q例 SQLSTATE 值 ?
含义
42501 授权标识不具有对标识对象执行指定操作的特权?
42502 授权标识不具有执行指定操作的Ҏ?
42504 无法从指定的权限名撤销指定的特权、安全标h免除凭证?
42506 发生所有者授权失败?
42508 不能指定的数据库特权授?PUBLIC?
42509 因ؓ STATICRULES 选项而未授权 SQL 语句?
42511 未能?DATALINK 倹{?
42512 授权标识对受保护列没有访问权?
42514 授权标识不具有对象的所有权需要的Ҏ?
42516 用户映射存储库中的认证失败?
42519 不允许此授权标识对受保护表执行操作?
42520 ׃此授权标识没有安全标P所以无法执行内|函数?
42521 无法权限或Ҏ授予指定的授权标识?
42522 此授权标识没有凭证,因此无法保护列或者对该列除去保护?
42601 字符、标记或子句无效或丢失?
42602 到名称中有无效字符?
42603 到未终止的字符串常量?
42604 到无效数字或字W串帔R?
42605 为标量函数指定的参数的数目无效?
42606 到无效十六q制常数?
42607 列函数的操作数无效?
42608 ?VALUES 中?NULL ?DEFAULT 是无效的?
42609 q算W或谓词的所有操作数都是参数标记?
42610 不允许参数标记?
42611 列或参数定义无效?
42612 语句字符串是一?SQL 语句Q它在它所出现的上下文中是不可接受的?
42613 子句互斥?
42614 重复关键字无效?
42615 到无效备用V?
42616 指定了无效的选项?
42617 语句字符串是I白或空的?
42618 不允怸机变量?
42620 ?UPDATE 子句指定了只?SCROLL?
42621 查约束无效?
42622 名称或标号太ѝ?
42623 不能指定 DEFAULT 子句?
42625 CASE 表达式无效?
42627 必须在?EXPRESSION AS 子句的谓词规范之前指?RETURNS 子句?
42628 在变换定义中多次定义?TO SQL ?FROM SQL 变换函数?
42629 必须?SQL 例程指定参数名?
42630 在嵌套复合语句中不能存在 SQLSTATE ?SQLCODE 变量声明?
42631 SQL 函数或方法中?RETURN 语句必须包括q回倹{?
42633 XMLATTRIBUTES ?XMLFOREST 的参数需?AS 子句?
42634 XML 名称无效?
42635 XML 名称I间前缀无效?
42636 ~少 BY REF 子句Q或者不正确使用了该子句?
42637 无法?DECLARE CURSOR 语句中指?XQuery 表达式?
42701 在插入或更新操作?SET 转换变量语句中检到重复列名?
42702 ׃名称重复Q列引用有歧义?
42703 到一个未定义的列、属性或参数名。 
42704 到未定义的对象或约束名?
42705 到未定义的服务器名?
42707 ORDER BY 内的列名不标识结果表中的列?
42709 在键列列表中指定了重复的列名?
42710 到重复的对象或U束名?
42711 在对象定义或 ALTER 语句中检到重复列名或属性名?
42712 ?FROM 子句中检到重复的表标志W?
42713 在对象列表中到重复对象?
42720 在节点目录内未找到远E数据库的节点名?
42723 模式中已l存在带有相同特征符的函数?
42724 不能讉K用于用户定义的函数或q程的外部程序?
42725 直接引用了例E(不是通过特征W或者通过特定实例名进行引用)Q但是该例程有多个特定实例?
42726 到指定的派生表的名U重复?
42727 Ҏ表来_不存在缺省主表空间?
42728 在节点组定义中检到重复节点?
42729 节点未定义?
42730 容器名已由另一表空间用?
42731 容器名已p表空间用?
42732 ?SET CURRENT PATH 语句中检到重复的模式名?
42734 到重复的参数名、SQL 变量名、游标名、条件名或标受?
42735 对缓冲池Q未定义表空间的节点l?
42736 ?LEAVE 语句上指定的标号找不到或无效?
42737 未定义在处理E序中指定的条g?
42738 ?FOR 语句?DECLARE CURSOR 语句中指定了重复的列名或未命名的列?
42739 到重复的变换?
42740 未找到指定类型的变换。未删除M变换?
42741 未对数据cd定义变换l?
42742 cd表或带类型视囑ֱơ结构中已存在同cd表或子视图?
42743 在烦引扩展名中未扑ֈ搜烦Ҏ。 
42744 在变换组中未定义 TO SQL ?FROM SQL 变换函数?
42745 例程用现有Ҏ定义覆盖关系?
42746 在同一cd层次l构中,Ҏ名不能与l构化类型名相同?
42748 存储路径对于数据库来说已存在或者被指定了多ơ?
42749 对于 XML 模式来说Q已l存在具有相同目标名U空间和模式位置?XML 模式文档?
4274A ?XML 模式存储库中未找?XSROBJECT?
4274B ?XML 模式存储库中未找到唯一?XSROBJECT?
4274F 在安全标L件中未定义组件元素?
4274G 在给定安全标h使用的安全标L略中未定义安全标L件?
4274H 指定的安全策略不存在指定的访问规则?
4274I 指定的安全策略不存在安全标号?
4274J 数据库分区组已被此缓冲池使用?
42802 插入或更新值的数目与列C相同?
42803 ?SELECT ?HAVING 子句中的列引用无效,因ؓ它不是分l列Q或者在 GROUP BY 子句中的列引用无效?
42804 CASE 表达式中的结果表辑ּ不兼宏V?
42805 ORDER BY 子句中的整数不标识结果表中的列?
42806 不能某D予某L变量, 因ؓ数据cd不兼宏V?
42807 对该对象不允许执?INSERT、UPDATE ?DELETE?
42808 插入或更新操作中标识的列不可更新?
42809 标识的对象不是语句所应用的对象类型?
42810 FOREIGN KEY 子句中没有标识基本表?
42811 指定的列C SELECT 子句中的列数不相同?
42813 WITH CHECK OPTION 不能用于指定的视图?
42814 无法删除该列Q因为它是表中唯一的列?
42815 数据cd、长度、小C、值或 CCSID 无效?
42816 表达式中的日期时间值或持箋旉无效?
42817 ׃某个视图或约束依赖于该列Qƈ且指定了 RESTRICTQ或者由于该列包含在分区键中Q或者由于该列是安全标号列,所以无法删除该列?
42818 q算W或函数的操作数不兼Ҏ者不可比较?
42819 术q算的操作数或需要数字的函数的操作数不是数字?
42820 数字常数太长Q或其g在该数据cd取D围内?
42821 更新或插入g列不兼容?
42823 从仅允许一列的子查询中q回了多列?
42824 LIKE 的操作数不是字符Ԍ或第一个操作数不是列?
42825 UNION、INTERSECT、EXCEPT ?VALUES 的行没有兼容列?
42826 UNION、INTERSECT、EXCEPT ?VALUES 的行的列C相同?
42827 UPDATE ?DELETE 中标识的表与游标指定的表不相同?
42828 ?UPDATE ?DELETE 语句的游标指定的表不能修改,或该游标是只L标?
42829 FOR UPDATE OF 无效Q因为由该游标指定的l果表不能修攏V?
42830 外键不符合父键的描述?
42831 主键或唯一键列不允许空倹{?
42832 不允许对pȝ对象执行该操作?
42834 不能指定 SET NULLQ因Z能对外键的Q何列指定I倹{?
42835 在指定的z表之间不能指定@环引用?
42836 指定的递归z表的规范无效?
42837 不能改变该列Q原因是它的属性与当前的列属性不兼容?
42838 到无效使用了表I间?
42839 索引和长列不能处于与该表独立的表I间内?
42840 到无效使用?AS CAST 选项?
42841 参数标记不能是用户定义的cd或引用类型?
42842 列定义无效,因ؓ指定的选项与列描述不一致?
42845 到无效使用?VARIANT ?EXTERNAL ACTION 函数?
42846 不支持从源类型到目标cd的强制类型{换?
42849 外部例程不支持所指定的选项?
42852 ?GRANT ?REVOKE 中指定的Ҏ无效或不一致。(例如Q视图上?GRANT ALTER。)
42853 指定了选项的两个备用项Q或者同一选项被指定了多次?
42854 选择列表中的l果列数据类型与在带cd视图或具体化查询表定义中定义的类型不兼容?
42855 不允许对此主机变量指?LOB。此游标?LOB 值的所有访存的目标L变量必须是定位器?LOB 变量?
42858 不能该操作应用于指定对象?
42863 到 REXX 中有未定义的L变量?
42866 ?CREATE FUNCTION 语句?CAST FROM 子句中的 RETURNS 子句的数据类型对于有源函数或函数体中?RETURN 语句q回的数据类型不适合?
42867 指定了冲H的选项?
42872 FETCH 语句子句与游标定义不兼容?
42875 要在 CREATE SCHEMA 中创建的对象的限定符必须与模式名相同?
42877 不能限定该列名?
42878 无效的函数或q程名称?EXTERNAL 关键字一起用?
42879 ?CREATE FUNCTION 语句中一个或多个输入参数的数据类型对于源函数中相应的数据cd不适合?
42880 CAST TO ?CAST FROM 数据cd不兼容,或MD固定字符串截断?
42881 使用Z行的函数无效?
42882 特定实例名限定符与函数名限定W不相同?
42883 找不到具有匹配特征符的例E?
42884 找不到具有指定名U和兼容参数的Q何例E?
42885 ?CREATE FUNCTION 语句中指定的输入参数数目?SOURCE 子句中指定的函数所提供的参数数目不匚w?
42886 IN、OUT ?INOUT 参数属性不匚w?
42887 在该函数出现的上下文中该函数无效?
42888 表没有主键?
42889 该表已有主键?
42890 在引用子句中指定了列表,但是标识的父表没有指定列名的唯一U束?
42891 重复?UNIQUE U束已存在?
42893 无法删除、改变或传输该对象或U束Q或者无法从对象中撤销权限Q因有其他对象依赖于该对象?
42894 DEFAULT 值无效?
42895 对于静?SQLQ不能用输入主机变量,因ؓ其数据类型与q程或用户定义的函数的参C兼容?
428A0 用户定义的函数所Z的有源函数出错?
428A1 不能讉KL文g变量所引用的文件?
428A2 表不能指定给多节点节点组Q因为它没有分区键?
428A3 Z件监视器指定了无效\径?
428A4 Z件监视器选项指定了无效倹{?
428A5 ?SET INTEGRITY 语句中指定的异常表结构不正确Q或者已用生成的列、约束或触发器定义了该异常表?
428A6 ?SET INTEGRITY 语句中指定的异常表不能与正在查的表之一相同?
428A7 查的表数目与?SET INTEGRITY 语句中指定的异常表数目不匚w?
428A8 在父表或底层的表处于讄完整性暂挂状态时Q不能对z表?SET INTEGRITY 语句复位讄完整性暂挂状态?
428A9 节点范围无效?
428AA 列名不是事g监视器表的有效列?
428B0 ?ROLLUP、CUBE ?GROUPING SETS 中有非法嵌套?
428B1 未指定给特定节点的表I间容器的规范数目不正确?
428B2 容器的\径名无效?
428B3 指定了无效的 SQLSTATE?
428B7 ?SQL 语句中指定的~号不在有效范围内?
428BO 不能合数据源创徏Ҏ?
428C0 不能删除该节点,因ؓ它是节点l中唯一的节炏V?
428C1 只能指定一?ROWID、IDENTITY 或安全标号列?
428C2 查函C指出应已?CREATE FUNCTION 语句中指定给出的子句?
428C4 谓词q算W两边的元素的数目不相同?
428C5 从数据源中找不到数据cd的数据类型映?
428C9 不能?ROWID 列指定ؓ INSERT ?UPDATE 的目标列?
428CA 处于q加方式的表不能h集群索引?
428CB 表空间的大必M相关联的~冲池的大相匚w?
428D1 不能讉K DATALINK 值所引用的文件?
428D4 ?OPEN、CLOSE ?FETCH 语句中不能引用在 FOR 语句中指定的游标?
428D5 l束标号与开始标号不匚w?
428D6 NOT ATOMIC 语句不允?UNDO?
428D7 不允许条件倹{?
428D8 SQLSTATE ?SQLCODE 变量的声明或使用无效?
428DB 作ؓ类型、超表或视图,该对象无效。 
428DC 对于此类型的变换Q该函数或方法无效?
428DD 未定义要求的变换?
428DE PAGESIZE g受支持?
428DF ?CREATE CAST 中指定的数据cd无效?
428DG ?CREATE CAST 中指定的函数无效?
428DH 操作对于cd表无效?
428DJ 不能更改或删除承列或属性?
428DK 已定义引用列的作用域?
428DL 外部函数或有源函数的参数已定义了作用域?
428DM 作用域表或视囑֯于引用类

型无效?
428DN 未在外部函数?RETURNS 子句中指?SCOPEQ或在有源函数的 RETURN 子句中指定了 SCOPE?
428DP 该类型不是结构化cd?
428DQ 子表或子视图的模式名不能与其上一U表或上一U视囄模式名不同?
428DR 无法操作应用于子表或子视图?
428DS 不能在子表中定义指定列的索引。 
428DT 表达式的操作C是有效的作用域引用类型?
428DU 要求的类型层ơ结构中不包括的一U类型。 
428DV 解析引用q算W的左操作数无效?
428DW 不能使用解析引用q算W来引用对象标识列?
428DX 对象标识列是定义一个类型表或带cd视图层次l构的根表或根视图所必需的?
428DY 不能对目标对象类型更新统计信息?
428DZ 不能更新对象标识列?
428E0 索引的定义与索引扩展名的定义不匹配?
428E1 用于产生范围的表函数的结果与索引扩展名的键变换表函数的结果不一致?
428E2 目标键参数的数目或类型与索引扩展名的键变换函数的数目或类型不匚w?
428E3 索引扩展名中函数的参数无效?
428E4 函数?CREATE INDEX EXTENSION 语句中不受支持?
428E5 只能用用户定义的谓词来指?SELECTIVITY 子句?
428E6 用户定义的谓词中的方法的搜烦参数与烦引扩展名的相应搜索方法的搜烦参数不匹配?
428E7 用户定义的谓词中跟在比较q算W后的操作数cd?RETURNS 数据cd不匹配?
428E8 搜烦目标或搜索参数参C正在创徏的该函数的参数名不匹配?
428E9 在相同的使用规则中参数的参数名不能同时作为搜索目标和搜烦参数?
428EA 带类型视图中的全查询无效?
428EB 当上一U视图中的某一列ؓ可更新时Q子视图中相应的列不能是只读的?
428EC 为具体化查询表指定的全查询无效?
428ED 不能构造具?Datalink ?Reference cd属性的l构化类型?
428EE 选项Ҏ数据源无效?
428EF 该选项的值对此数据源无效?
428EG 丢失此数据源所必需的选项?
428EH 不能 ADD 已定义的选项?
428EJ 不能 SET ?DROP 未d的选项?
428EK 已声明的全局临时表名的限定符必须?SESSION?
428EL 变换函数不能与函数或Ҏ一起用?
428EM TRANSFORM GROUP 子句是必需的?
428EN 变换l被指定为未使用?
428EP l构化类型不能直接或间接依赖于它本n?
428EQ 例程的返回类型与主题cd不同?
428ER 在删除方法主体之前,不能删除Ҏ规范?
428ES ҎM与方法规范的语言cd不对应?
428EU 在服务器定义中未指定 TYPE ?VERSION?
428EV 对于该数据源cdQ传递(Pass-ThroughQ功能不受支持?
428EW 表不能与具体化查询表互相转换?
428EX 例程不能用作变换函数Q因为它是内|函数或Ҏ?
428EY 用户定义的谓词中搜烦目标的数据类型与指定索引扩展名的源键的数据类型不匚w?
428EZ OLAP 函数的窗口规范无效?
428F0 ROW 函数必须包括臛_两列?
428F1 SQL TABLE 函数必须q回表结果?
428F2 SQL q程中的 RETURN 语句值的数据cd必须?INTEGER?
428F3 SCROLL ?WITH RETURN 是互斥的?
428F4 ?FETCH 上指定的 SENSITIVITY 不允许用于游标?
428F6 游标是可滚动的,但结果表涉及来自表函数的输出?
428F7 试对外部例E进行的操作仅应用于 SQL 例程?
428F9 在此上下文中不能指定序列表达式?
428FA 十进制数的小C必须为零?
428FB 序列名不能是qlؓ标识列生成的序列?
428FC 加密密码的长度无效?
428FD 用于解密的密码与加密数据时所使用的密码不匚w?
428FE 数据不是 ENCRYPT 函数的结果?
428FF ~冲池规范无效?
428FG d表或具体化查询表定义无效?
428FH SET INTEGRITY 选项无效
428FI 指定?ORDER OFQ但表标志符不包?ORDER BY 子句?
428FJ 视图或具体化查询表的外部全查询不允许使用 ORDER BY?
428FL 在指?SQL 数据更改语句的上下文中,不允?SQL 数据更改语句?
428FM SELECT 中的 INSERT 语句指定了一个不是对U视囄视图?
428FP 只允许将一?INSTEAD OF 触发器用于对主题视图的每U操作?
428FQ INSTEAD OF 触发器不能指定?WITH CHECK OPTION 定义的视图、在使用 WITH CHECK OPTION 定义的另一个视图上定义的视图或者嵌套在使用 WITH ROW MOVEMENT 子句定义的视图中的视图?
428FT 表与指定的数据分区操作不兼容?
428FU ?FROM SQL 变换函数或方法返回的内置cd?TO SQL 变换函数或方法的相应内置cd不匹配?
428FV 不能方法定义ؓ覆盖Ҏ?
428FZ 仅ؓ某些操作定义?INSTEAD OF 触发器的视图不能?MERGE 语句中用作目标?
428G1 数据分区数超q了表的表空间数?
428G2 无法从表中删除最后一个数据分区?
428G3 当全查询中的 SQL 数据更改语句的目标视囑֮义了 INSTEAD OF 触发器时QFINAL TABLE 无效?
428G4 无效使用?INPUT SEQUENCE 排序?
428G5 UPDATE 语句的赋值子句必至指定不?INCLUDE 列的一列?
428G6 指定了不能从全查询的 FROM 子句中的数据更改语句的目标中选择的一列?
428G8 不能启用视图以进行查询优化?
428GA 不能d、删除或改变联合选项?
428GD PARTITION BY 子句必须指定单个列,q且它必M ORGANIZE BY 子句的第一列相同?
428GE 源表无法q接臛_区目标表?
428GG 无效使用了容讔R误的嵌套表表辑ּ?
428GO 列选项在透明 DDL 语句中无效?
428GI XML 模式不完_因ؓ~少 XML 模式文档?
428GP 无法为类型ؓ ARRAY 的组件指定多个元素?
428GR 已经具有相同访问类型(READ ?WRITEQ的安全标号授予l授权标识?
428GQ 安全标号?GRANT 与组件的现有已授权的安全标号相冲H?
428GS 对该q程指定的选项g源过E的对应选项不匹配?
428GT 表未受安全策略保护?
42901 列函C包括列名?
42903 WHERE 子句?SET 子句包括无效引用Q例如列函数?
42904 ׃~译错误Q未创徏 SQL q程?
42907 字符串太ѝ?
42908 语句不包括必需的列表?
42910 复合语句中不允许该语句?
42911 十进刉法运无效,因ؓ其结果的数位ؓ负?
42912 列不能更斎ͼ因ؓ它未在游标的 select 语句?UPDATE 子句中标识?
42914 DELETE 无效Q因为子查询中引用的表可能会受该操作影响?
42915 到无效引用U束?
42916 不能创徏别名Q因为它会导致重复的别名链?
42917 不能昑ּ删除或改变该对象?
42918 用户定义的数据类型不能用pȝ定义数据cd名(例如 INTEGERQ创建?
42919 不允许嵌套复合语句?
42921 容器不能d臌表空间?
42925 指定的递归z表不能指?SELECT DISTINCTQ而必L?UNION ALL?
42928 不能表指?WITH EMPTY TABLE?
42932 E序预编译假设不正确?
42939 不能使用该名Uͼ因ؓ指定的标识是保留l系l用的?
42961 指定的服务器名与当前服务器不匚w?
42962 长列、LOB 列、XML 列或l构化类型列不能用于索引、键或约束?
42963 指定的安全标号列无效?
42968 q接p|Q因为没有当前Y件许可证?
42969 未创建程序包?
42972 MERGE 语句的连接条件或 ON 子句中的表达式引用多个操作数表中的列?
42985 例程中不允许该语句?
42987 不允许此语句出现在过E或触发器中?
42989 使用表达式生成的列或者安全标号列不能在前触发器中使用?
42990 不允许唯一索引或唯一U束Q因为键列不是分区键列的集?
42991 BOOLEAN、BINARY ?VARBINARY 数据cd当前仅在内部受支持?
42993 定义的列太大而不能记录?
42994 不支持原始设备容器?
42995 所h的函C应用于全局临时表?
42997 此版本的 DB2 应用E序h器、DB2 应用E序服务器或两者的l合不支持该功能?
429A1 节点l对于表I间无效?
429A9 SQL 语句不能?DataJoiner 处理?
429B2 为结构化cd或列指定的直接插入长度值太?
429B3 可能未在子表中定义对象?
429B4 数据qo函数不能?LANGUAGE SQL 函数?
429B5 索引扩展名中实例参数的数据类型无效?
429B8 ?PARAMETER STYLE JAVA 定义的例E不能具有作为参数类型或q回cd的结构化cd?
429B9 在属性赋g不能使用 DEFAULT ?NULL?
429BA FEDERATED 关键字必M对联合数据库对象的引用配合用?
429BB ?SQL 例程中不支持对参数或变量指定的数据类型?
429BC ?ALTER TABLESPACE 语句中有多个容器操作?
429BE 主键或唯一键是l子句中的列的子集?
429BG 范围集群表不支持该函数?
429BH 分区表定义包含不受支持的列定义,该列可能是标识列、DATALINK 列或 XML 列?
429BJ 在视图中无效使用?WITH ROW MOVEMENT?
429BK ׃Ud行涉及到基础视图Q因此,试更新视图无效?
429BL 在非法上下文中调用了修?SQL 数据的函数?
429BO 不能合数据源创徏Ҏ?
429BP 늧列表辑ּ无效?
429BS 涉及?XMLPATTERN 子句或用数据类?XML 定义的列的烦引定义无效?
429BT ׃存在依赖性而得{UL有权p|?
429BU 无法讉K插g的用h存储库中的用户映射?
429BZ ׃其中一个底层表受保护,所以对 UNION ALL 视图执行的更新、删除或插入操作p|?
429C0 查询必须包含使用了所指示的列的谓词?

 

cM?44 WITH CHECK OPTION q例
?33. cM?44QWITH CHECK OPTION q例 SQLSTATE 值 ?
含义
44000 不允许插入或更新操作Q因为结果行不满囑֮义?

cM?46 Java DDL
?34. cM?46QJava DDL SQLSTATE 值 ?
含义
46001 Java DDL Q?无效 URL?
46002 Java DDL Q?无效 jar 名称?
46003 Java DDL Q?无效cd除?
46007 Java DDL Q?无效特征W?
46008 Java DDL Q?无效Ҏ规范?
46103 Java 例程遇到?ClassNotFound 异常?
46501 Java DDL Q?未实现可选组件?

cM?51 无效应用E序状?br />?35. cM?51Q无效应用程序状?SQLSTATE 值 ?
含义
51002 未找C SQL 语句执行h相对应的E序包?
51003 一致性标C匚w?
51004 SQLDA 中的地址无效?
51005 上一pȝ错误已禁用此函数?
51008 预编译的E序的发行版h效?
51015 试执行在绑定时发现有错的节?
51017 用户没有d?
51021 在应用程序进E执行了回滚操作之后才能执行 SQL 语句?
51022 ?CONNECT 语句中指定的服务器已存在q接Q不论处于当前状态还是休眠状态)Ӟ指定权限名称?CONNECT 无效?
51023 该数据库已由数据库管理器的另一实例使用?
51024 不能使用视图Q因为它已被标记Z可操作?
51025 ?XA 事务处理环境中的应用E序未用 SYNCPOINT TWOPHASE l定?
51026 无法打开事g监视器,因ؓ它的目标路径已由另一事g监视器用?
51027 因ؓ表是用户l护的具体化查询表或未处于设|完整性暂挂状态,所?SET INTEGRITY 语句?IMMEDIATE CHECKED 选项无效?
51028 不能使用E序包,因ؓ它被标记Z可操作?
51030 在应用程序进E中未调用 ALLOCATE CURSOR ?ASSOCIATE LOCATORS 语句中所引用的过E?
51034 使用 MODIFIES SQL DATA 定义的例E在调用它的上下文中无效?
51035 不能使用 PREVVAL 表达式,原因是在此会话中q没有ؓ序列生成倹{?
51038 SQL 语句可能不再׃E发出?
51039 未设|?ENCRYPTION PASSWORD 倹{?
51040 ~译环境无效?

cM?53 无效操作数或不一致的规范
?36. cM?53Q无效操作数或不一致的规范 SQLSTATE 值 ?
含义
53038 键限制值的数目为零或者大于键中的列数?
53040 不能像指定的那样更改~冲池?
53045 键限制常量的数据cd与列的数据类型不相同?
53090 同一?SQL 语句中只能引用具有一U编码方案(ASCII、EBCDIC ?UnicodeQ的数据?
53091 指定的编码方案与当前用于包含对象的编码方案不相同?

cM?54 过 SQL 或品限?br />?37. cM?54Q超q?SQL 限制或品限?SQLSTATE 值 ?
含义
54001 语句太长或者太复杂?
54002 字符串常量太ѝ?
54004 语句?SELECT ?INSERT 列表中的Ҏ表名太多?
54006 q置的结果太ѝ?
54008 键太长,键的列太长,或者键的列数太多?
54010 表的记录长度太长?
54011 或视图指定了太多列?
54023 用于函数或过E的参数或自变量数目出限制?
54028 已达到ƈ?LOB 句柄最大数?
54029 已达到打开目录扫描最大数?
54030 zd事g监视器已达最大数?
54031 已对事g监视器分配了最大文件数?
54032 已达到表的最大大?
54033 已达到分区映最大数?
54034 表空间的所有容器名的组合长度太ѝ?
54035 已超q内部对象限制?
54036 容器或存储\径的路径名太ѝ?
54037 表空间的容器映射太复杂?
54038 出了嵌套例E或触发器的最大深度?
54045 已超出类型层ơ结构的最大别?
54046 索引扩展名中已超出允许的参数的最大倹{?
54047 已超I间的最大大?
54048 h_大的临时表空间不存在?
54049 l构化类型的实例的长度超q了pȝ限制?
54050 在结构化cd中超q了允许的最大属性数目?
54052 ~冲池的块页数对~冲池对于缓冲池的大来说太大了?
54053 ?BLOCKSIZE 指定的g在有效范围内?
54054 过了分区数或者超q了表空间分区数与分区限刉的相应长度的l合?
54057 XML 元素名称、属性名U、名U空间前~?URI 太长?
54058 XML 路径的内部表C太ѝ?
54059 只具有空格字W的文本节点字符串值太长,无法q行 STRIP WHITESPACE 处理?
54061 对安全标L件指定了太多元素?
54062 已经过了安全策略中的最大组件数?

cM?55 对象不处于先x件状?br />?38. cM?55Q对象不处于先决条g状态?SQLSTATE 值 ?
含义
55001 数据库必迁UR?
55002 未正定义解释表?
55006 对象不能删除Q因为它当前正由同一应用E序q程使用?
55007 不能改变对象Q因为它当前正由同一应用E序q程使用?
55009 pȝ试对只L件或写保护Y盘进行写入?
55012 在表中已存在一个集烦引?
55019 表的状态对于该操作无效?
55022 未向此数据库注册文g服务器?
55023 调用例程时发生错误?
55024 表空间不能删除,因ؓ与表相关的数据也在另一表空间中?
55025 必须重新启动数据库?
55026 不能删除临时表空间?
55031 错误映射文g的格式不正确?
55032 CONNECT 语句无效Q因为在该应用程序启动后Q数据库理器停止?
55033 事g监视器不能在创徏它或修改它所处的同一工作单元内激zR?
55034 事g监视器处于无效的操作状态?
55035 不能删除该表Q因为它是受保护的?
55036 不能删除该节点,因ؓ它未从该分区映射除去?
55037 不能删除该分区键Q因表在多节点节点组内?
55038 该节点组不能使用Q因为它正在q行重新q?
55039 不允许访问或状态{换,因ؓ该表I间未处于适当状态?
55041 在进行重新^衡时Q不能将容器d臌I间?
55043 当基于该cd的类型表或带cd视图存在Ӟ不能改变l构化类型的属性?
55045 不能例程创徏“SQL 归档”(SARQ文Ӟ因ؓ服务器上未提供所需lg?
55046 指定?SQL 归档与目标环境不匚w?
55047 外部函数或方法尝试访问联合对象?
55048 不能再加密已加密的数据?
55049 未正定义事件监视器表?
55051 ALTER BUFFERPOOL 语句当前正在处理中?
55054 不能方法定义ؓ覆盖Ҏ?
55056 ׃未启用数据库q行联合Q因此不能更新昵U统计信息?
55057 不允怋用该语句Q因为它增量l护某些从属表失效?
55060 q没有ؓ数据库定义自动存储器?
55061 无法对自动存储器表空间更改表I间存储器?
55062 因ؓ没有Ҏ据库启用自动存储器,所以不能提供存储\径?
55063 对于该操作来_XML 模式未处于正状态?
55064 无法基于标L讉K控制应用于列Q因没有安全{略?
55065 一个表最多只能有一U安全策略?
55066 表不能分配新,因ؓ索引不支持大型 RID?
55067 表不能生成受保护的表Q因?MQT 或登台表依赖于它?

cM?56 其他 SQL 或品错?br />?39. cM?56Q其?SQL 或品错?SQLSTATE 值 ?
含义
56016 为数据分区指定了无效范围?
56031 子句或标量函数无效,因ؓ该系l不支持混合数据?DBCS 数据?
56033 长字W串列的插入值或更新值必LL变量?NULL?
56038 此环境不支持h的功能部件?
56072 ׃低别服务器不支持函敎ͼ所以执行失败,q不会媄响后l?SQL 语句的执行?
56084 ?DRDA 中不支持 LOB 数据?
56091 执行复合 SQL 语句时发生多个错误?
56092 权限cd不能定Q因为权限名U既是用h识又是组标识?
56095 l定选项无效?
56097 ?DEVICE 上构建的 TABLESPACE 中不允许 LONG VARCHAR ?LONG VARGRAPHIC 字段?
56098 在隐式重新绑定或预编译期间出错?
56099 目标数据库不支持 REAL 数据cd?
560A0 ?LOB 值的操作p|?
560AA 只有 Unicode 数据库图形数据才支持使用此子句或标量函数?
560AC 包装器定义不能用于指定类型或版本的数据源?
560AF 当用网关集中器ӞPREPARE 语句不受支持?
560B0 调整的新表空间或表空间容器大值无效?
560B1 存储q程中有无效的游标规范?
560B7 对于多行 INSERTQ对于每一行,序列表达式的用法都必ȝ同?
560BB 对于动态预~译?CALL 语句中的 INOUT 参数Q必d USING ?INTO 子句中用相同的L变量?
560BC 讉K文g时发生错误?
560BD 联合服务器从数据源中接收到意外的错误代码?
560BF 加密工具不可用?
560C0 不能?SQL 函数?SQL Ҏ中用以 Unicod

e ~码Ҏ创徏的表?
560C1 ?Unicode ~码Ҏ创徏的表不能是类型表或者包含图形类型或用户定义的类型?
560C2 为已删除表写历史记录文g条目p|?
560C3 后触发器不能修改?INSERT 语句插入的一行?
560C6 引用U束不能修改由全查询内的 SQL 数据更改语句修改的行?
560C8 不能更新某些늧l计信息?
560C9 不能说明指定的语句?
560CB 联合服务器从 Web Service 数据源中接收?SOAP 故障?
560CD 在检索警报配|设|时指定的一个或多个值无效?
560CE ׃最q的落实或回滚操作,使得 SQL 变量不可供引用?
560CF 无法表I间转换为大型表I间?
560CG XML 值包含一?XML 节点的组合,该组合导致超q了内部标识限制?
560CH 过?XML g XML 节点的子节点的最大数目?
560CI 指定要返回给客户机的l果集无效?
560CJ 必须?IBMCATGROUP 数据库分区组中创I间?

 

cM?57 资源不可用或操作员干?br />?40. cM?57Q资源不可用或操作员q预 SQLSTATE 值 ?
含义
57001 表不可用Q因为它没有ȝ引?
57003 未ȀzL定的~冲池?
57007 对象不能使用Q因?DROP ?ALTER 处于暂挂状态?
57009 虚拟存储器或数据库资源暂时不可用?
57011 虚拟存储器或数据库资源不可用?
57012 非数据库资源不可用。这不会影响后箋语句的成功执行?
57013 非数据库资源不可用。这媄响后l语句的成功执行?
57014 按照h取消了处理?
57016 因ؓ表不zdQ所以不能访问它?
57017 未定义字W{换?
57019 该语句因资源问题未成功?
57020 包含数据库的驱动器被锁定?
57021 软盘驱动器门是打开的?
57022 不能创徏表,因ؓ语句的授权标识不拥有M合适的 dbspaces?
57030 与应用程序服务器的连接超出安装定义的限制?
tp57032 已启动最大ƈ发数据库数?
57033 发生死锁或超Ӟ而没有自动回滚?
57036 事务日志不属于当前的数据库?
57046 不能启动新的事务Q因为数据库或实例被停顿?
57047 不能创徏内部数据库文Ӟ因ؓ该目录不可访问?
57048 讉K表空间的容器时发生错误?
57049 已达到操作系l进E界限?
57050 文g服务器当前不可用。 
57051 估计?CPU 成本出了资源限制?
57052 节点不可用,因ؓ它所含有的容器不以满所有的临时表空间?
57053 因ؓ冲突操作Q所以不能对表执行操作?
57055 带有_大的临时表空间不可用。 
57056 E序包不可用Q因为数据库处于 NO PACKAGE LOCK 方式?
57057 ׃ SQL 语句?DRDA 链中的优先条Ӟ不能执行?SQL 语句?
57059 表空间中没有_的空间用于执行指定的操作?

cM?58 pȝ错误
?41. cM?58Q系l错?SQLSTATE 值 ?
含义
58004 发生pȝ错误Q它不一定阻止后l?SQL 语句的成功执行)?
58005 发生pȝ错误Q它L后箋 SQL 语句的成功执行)?
58008 ׃分发协议错误致执行p|Q它不媄响后l?DDM 命o?SQL 语句的成功执行?
58009 ׃分发协议错误致执行p|Q它D对话的释放?
58010 ׃分发协议错误致执行p|Q它媄响后l?DDM 命o?SQL 语句的成功执行?
58011 q行l定?DDM 命o无效?
58012 h指定E序包名和一致性标记的l定q程不活动?
58014 DDM 命o不受支持?
58015 DDM 对象不受支持?
58016 DDM 参数不受支持?
58017 DDM 参数g受支持?
58018 不支?DDM 应答消息?
58023 pȝ错误D当前E序被取消?
58030 发生 I/O 错误?
58031 q接因系l错误而未成功?
58032 不能该q程用于N方式的用户定义的函数?
58034 试?DMS 表空间中L对象的页时检到错误?
58035 试?DMS 表空间中释放对象的页时检到错误?
58036 指定的内部表I间标识不存在?

cM?5U 实用E序
?42. cM?5UQ实用程?SQLSTATE 值 ?
含义
5U001 指定的函数或功能部g不受支持?
5U002 指定的应用程序当前不存在?
5U003 找不到活动监控器报告?
5U004 保存监视d时所提供的一个或多个值无效?
5U005 指定的操作方式无效?
5U006 未打开必需的监视开兟?
5U007 q回?CLP 错误。有兌l信息,请参?CLP 消息文档?
5U008 实用E序操作标识无效?
5U009 已达到存储\径的最大数目?
5U010 寚w目录数据库分区执行的复原操作不能指定自动存储路径?
5U011 复原操作必须指定自动存储路径?
5U012 路径中的数据库分辑ּ无效或者不正确C用了它?
5U013 不能l箋q行复原Q因为数据库分区不可用?
5U014 授权标识没有对表q行 LOAD 命o所必需?LBAC 凭证?
5U0ZZ 例程遇到了错误。参?SQLCODE 以获取详l信息?
ZZZZZ 占位W?sqlstate 仅供开发用。在交付代码之前必须更改它?br />
文章来源Q?a >http://www.51fy.cn/data/MSSQL/200703/31846.htm



心砚 2007-07-20 14:04 发表评论
]]>
jdbcq接db2http://www.tkk7.com/zqbchina/articles/131324.html心砚心砚Thu, 19 Jul 2007 09:46:00 GMThttp://www.tkk7.com/zqbchina/articles/131324.htmlhttp://www.tkk7.com/zqbchina/comments/131324.htmlhttp://www.tkk7.com/zqbchina/articles/131324.html#Feedback0http://www.tkk7.com/zqbchina/comments/commentRss/131324.htmlhttp://www.tkk7.com/zqbchina/services/trackbacks/131324.htmlpublic static void main(String[] args) {
  Connection conn = null;
  PreparedStatement ps = null;
  ResultSet rs = null;
  String url = "jdbc:db2://192.168.3.23:50000/dbname",
      username = "username",
      password = "password";

  try {
   Class.forName("com.ibm.db2.jcc.DB2Driver");
   conn = DriverManager.getConnection(url, username, password);
   ps = conn.prepareStatement("select colname from tablename");
   rs = ps.executeQuery();
   while (rs.next()) {
    System.out.println(rs.getString(1));
   }
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    if (rs != null) rs.close();
    if (ps != null) ps.close();
    if (conn != null) conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
 }



心砚 2007-07-19 17:46 发表评论
]]>
初识DB2http://www.tkk7.com/zqbchina/articles/127771.html心砚心砚Tue, 03 Jul 2007 02:54:00 GMThttp://www.tkk7.com/zqbchina/articles/127771.htmlhttp://www.tkk7.com/zqbchina/comments/127771.htmlhttp://www.tkk7.com/zqbchina/articles/127771.html#Feedback0http://www.tkk7.com/zqbchina/comments/commentRss/127771.htmlhttp://www.tkk7.com/zqbchina/services/trackbacks/127771.html 1QCLP的运行:

   直接在cmd中键入:db2Q报错:DB21061E  未初始化命o行环境?br />
   键入Qdb2cmdQ这时会打开一个CLPH口Q在q里键入db2后,可以进行sql命o操作了。如Q?br />
   db2 => connect to sample


2Q表I间的创建:

     在创I间Q选择“容器”,如果你选择的容器(windows osQ是一个非I的文g夹,那么会报错Q?br />
            [IBM][CLI Driver][DB2/NT] SQL0298N  容器路径不正。?SQLSTATE=428B2

    只需“容器”改Z个空的文件夹卛_?br />

3Q创建数据库Q?br />
      一个数据库最有三个表空_用户表、目录表和时表Q这些表I间可以采取让OS来管理,也可以让DB本n来管理,q里我采用让OS来进行管理表I间Q容器的建立如下Q?br />
               用户表(I间Q-Q- d:\MyDB\userTabSpace
               目录表(I间Q-Q- d:\MyDB\dirTabSpace
               临时表(I间Q-Q- d:\MyDB\tempTabSpace

4Q在java中用JDBCq接DB2数据库,先用eclipse中的Database Explorerq接Q?br />       
      aQ当Class选用DB2中E:\IBM\SQLLIB\java\db2java.zip 下的COM.ibm.db2.jdbc.app.DB2DriverӞDatabase Explorer可以q接上数据库Q当Class选用DB2中E:\IBM\SQLLIB\java\db2jcc.jar 下的com.ibm.db2.jcc.DB2DriverӞDatabase Explorerq接不上数据库,报错QNo license was foundQ需要将包db2jcc_license_cu.jar加蝲到classpath下?br />
5Q在用restore命o对DB2q行数据恢复Ӟ如果有多个备份文件与为备份数据库映像所提供的时间戳记值相匚w的话Q那么将不能正常恢复Q这里采用了一个比较土的方法:?30324.001Q改为:130324A.001Q那么将会认个文件与备䆾数据库映像所提供的时间戳记g同,不予恢复考虑?br />
6Qoracle中的decode()函数Q看看在DB2中都被折腾成什么样子了Q?br />
  语句Q select id,case when id=1 then 'Ҏ? when id=2 then '马明? else name end as 姓名,name from testQ?br />
ID          姓名       NAME
----------- ---------- ----------
          1 Ҏ兵   ?zqb
          2 马明灯   ?mmd
          3 kyy        kyy

  3 条记录已选择?br />
7QDB2?span lang="EN-US" style="LINE-HEIGHT: 150%">db2start启动数据库,db2stop用来关闭数据库。但如果有数据库正在q接Ӟ是不能关闭数据库的,只有先断开数据库(connect resetQ连接才能再关闭数据库(db2stopQ;当然Q也可以关闭数据库(db2stop forceQ?/span>

8Q查错方法ȝQ?br />         通过SQLSTATE代码得到光误原因,如:
               db2  ?    08004Q其?8004是SQLSTATE代码Q当Ӟ有时候我们得到的q不一定是SQLSTATE代码Q这时可以同样通过命oQ db2  ?  SQL1068NQ来得到其SQLSTATE代码?/font>

9Qoracle中的rownumQ可以用DB2中的row_number() over()来替代,也可以用fetch first 3 rows onlyQ如Q?br />    select * from (select row_number() over() as rownum,t.* from xxx t) where rownum < 3
    (select   *   from   xxx   fetch   first   20   rows   only)   except   (select   *   from   xxx   fetch   first   10   rows   only)



心砚 2007-07-03 10:54 发表评论
]]>
վ֩ģ壺 ɫ˿ѹۿվ| ޹Ʒlv| ޻ɫ߹ۿ| þùƷѹۿ| ԾþþӰԺ| ۺŷ㻨| avŷǮ| ɬɬɫۺ| ŮվɫƵ| һavҩ߳| hƵ߹ۿվ| 99Ļ| Ѷ| ޾Ʒһ| ۺAV߲| ׾Ʒһ| ޾ƷҾþþþþ| רAAAAAAƵ| ޸Ӱ߹ۿ| 99þþþƷѹۿ| һAëƬѹۿþþƷ| ޾ƷƬ߹ۿƷĻ| ĻƵ߹ۿ| רҳ| ٸ| Ļպר| պ| պƵѹۿ| ޸Ƶ| ޾ƷŮþþþ9999| 99ȳ˾ƷȾþ| һëƬѹۿ| һŮȫƬѿ| Ƶ2020| ޾Ʒþһ| Ұһ| պƵһ| Ʒѹۿ| Ʒ޾Ʒˬˬ| þþþ޾ƷŮ| ѻɫһëƬ|