标签: db2-luw

按名称排序最佳匹配

我想要一个SQL like查询,并且结果以首先排序的输入参数开始,结果的其余部分将按字母顺序排序.

所以,如果我有

Foobbb
aaafoo
Fooaaa
bFoob
cccfooccc
Run Code Online (Sandbox Code Playgroud)

我搜索foo我希望它排序为:

Fooaaa
Foobbb
aaafoo
bFoob
cccfooccc
Run Code Online (Sandbox Code Playgroud)

所以我最相关的项目是第一位的.想要清楚地理解和良好的表现方式吗?我可以创建一个临时表,但认为它太多了.

我试过了

DECLARE cemployer CURSOR
WITH RETURN
FOR SELECT employer
    FROM   ((SELECT employer_name,  1 AS grp
             FROM   employer e
             WHERE  Upper(employer_name) LIKE Upper(i_employer|| '%'))
            UNION
            (SELECT employer_name, 2   AS grp
             FROM   employer e
             WHERE  Upper(employer_name) LIKE Upper('%'||i_employer|| '%')))
    ORDER  BY grp,
              employer;

OPEN cemployer;  
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我得到了

Fooaaa
Foobbb
Run Code Online (Sandbox Code Playgroud)

在结果集的底部再次重复.DB2不允许我对outter查询进行区分.我知道我可以通过子串或定位或其他字符串函数以多种方式解决这个问题但想知道最优雅的方法来做到这一点并确保不返回重复项.

sql db2 db2-luw

1
推荐指数
1
解决办法
1910
查看次数

DB2 Access计划图的说明

我使用db2exfmt实用程序为查询生成了访问计划,但我无法理解相同的内容.

请任何人都可以解释一下访问计划(比如括号中的数字是什么,/ ----- + ------\etc)

    Access Plan:
    -----------
    Total Cost:    15.1619
    Query Degree:  1

          Rows 
         RETURN
         (   1)
          Cost 
           I/O 
            |
            3 
         HSJOIN
         (   2)
         15.1619 
            2 
     /-----+------\
    4                3 
 TBSCAN           TBSCAN
 (   3)           (   4)
 7.58097          7.58036 
    1                1 
    |                |
    4                3 
 TABLE: DB2INST1  TABLE: DB2INST1
  TABA             TABB
   Q2               Q1
Run Code Online (Sandbox Code Playgroud)

db2 db2-luw

1
推荐指数
1
解决办法
3175
查看次数

DB2中出现意外的标记"LIMIT"

我的Rails应用程序连接到远程DB2数据库,在迁移时我遇到了这个错误:

==  DropLegacyProject: migrating ========================================
rake aborted!
An error has occurred, this and all later migrations canceled:

RuntimeError: Failed to execute statement due to: [IBM][CLI Driver][DB2/LINUXX8664] SQL0104N  An unexpected token "LIMIT" was found following "".  Expected tokens may include:  "FETCH FIRST <n> ROWS ONLY".  SQLSTATE=42601 SQLCODE=-104: SELECT  projects.* FROM projects WHERE projects.id < 17 LIMIT 1
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

sql db2 ruby-on-rails db2-luw

1
推荐指数
2
解决办法
2311
查看次数

如何更改默认密码

我们在PCI扫描中收到"IBM DB2 Universal Database Known Default Password Vulnerability"警报.要解决这个问题,我们应该更改DB2默认密码.

DBA的任何人都可以帮助我们吗?

有关详细信息,请参阅http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2001-0051

db2 db2-connect db2-400 db2-luw

1
推荐指数
1
解决办法
6384
查看次数

为什么DB2将空字符串视为null?

在Windows x64上使用DB2 10.5

UPDATE dbo.datasource_databases
SET HOST = ''
WHERE ID = 1

Assignment of a NULL value to a NOT NULL column "TBSPACEID=2, TABLEID=6, COLNO=1" is not allowed.. SQLCODE=-407, SQLSTATE=23502, DRIVER=3.67.28
Run Code Online (Sandbox Code Playgroud)

HOST是VARCHAR(512)NOT NULL

这是预期的行为吗?如果是这样,我应该如何解决这个问题,如果不是,可能导致这种情况?

编辑:沿着相同的行,SELECT ID, HOST from dbo.datasource_databases WHERE HOST != ''返回0行,其中检查HOST != 'some gibberish'将返回行.对我而言,这比上述行为更有意义(不应该只是把它视为HOST NOT NULL?).

db2 db2-luw

1
推荐指数
1
解决办法
3843
查看次数

db2中的REORG命令

所以我一直在改变QMF中的一张桌子.经过3次改动之后,我相信桌子已经进入待定的重组状态,因此我无法另外改变它.我在这个假设中是否正确?如果是这样,它有什么影响并且可以解决它,我可以简单地重新组织表并继续改变它吗?如果是这样,重新组织表的语法是什么样的?我试过 REORG TABLE PIDJBIP.TABLE_NAME_T 并收到错误:

在"REORG TABLE"之后发现了一个意外的令牌"PIDJBIP".预期的代币可能包括:"加入".SQL状态= 42601.

关于这个主题,我没有从IBM页面获得太多帮助.

db2 reorganize db2-luw

1
推荐指数
1
解决办法
2654
查看次数

DB2:在 Linux 上恢复数据库返回错误 SQL2036N

我尝试恢复 DB2 数据库,但它说返回路径无效。

这是我尝试过的:

db2 restore database gyczpas from "/home/db2inst1/GYCZPAS/PAS_BACKUP/GYCZPAS.0.db2inst1.NODE0000.CATN0000.20170109092932.001" taken at 20170109092932 into gyczpas
SQL2036N  The path for the file or device "/home/db2inst1/GYCZPAS/PAS_BACKUP/GYCZPAS.0.db2inst1.NODE0000.CATN000" is not valid.
Run Code Online (Sandbox Code Playgroud)

我在RESTORE用于BACKUP命令的过程中使用了相同的路径,但它失败了。可能是什么原因?

DB22 版本:v9.7

db2 backup db2-luw

1
推荐指数
1
解决办法
2148
查看次数

无法删除尾随空格

我试图删除尾随空格但没有成功:

select trim(trailing ' ' from '1234                       '), '56' from sysibm.sysdummy1;
1                           2 
--------------------------- --
1234                        56
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

db2 trim db2-luw

1
推荐指数
1
解决办法
1765
查看次数

如何在alter命令中的表中添加多列

我想借助alter query在existng表中添加多个列.

ALTER TABLE users.UM_REG_HPTL_DET_DOC

添加列HPTL_TADDRESS3 vargraphic(50),

ADD列APPLICANT_ADDRESS3 varchar(50),

ADD栏目APPLICANT_TADDRESS3(50),

添加列aadhar_no varchar(12),

ADD列Registration_no varchar(50);

比那个错误来了

在"RESS3 vargraphic(50)"之后发现了意外的标记",".预期的令牌可能包括:"".. SQLCODE = -104,SQLSTATE = 42601,DRIVER = 4.18.60

db2 db2-luw

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

db2 ×9

db2-luw ×9

sql ×2

backup ×1

db2-400 ×1

db2-connect ×1

reorganize ×1

ruby-on-rails ×1

trim ×1