我正在使用db2 9.5我已经在表中创建了一个成功创建的列,但我无法更新表列并获得以下错误
[错误]脚本行:1-1 -------------------------- DB2 SQL错误:SQLCODE:-668,SQLSTATE:57016,SQLERRMC: 7; DB2ADMIN.XCATENTRYEXT消息:表"DB2ADMIN.XCATENTRYEXT"上的原因代码"7"不允许操作.
在谷歌的一些博客/网站上我发现REORG命令作为解决方案,如下面的链接 http://bytes.com/topic/db2/answers/508869-reorg-tablespace
我已经尝试了以下查询来运行数据库来解决问题.
Database["DB2"].ExecuteNonQuery("call SYSPROC.ADMIN_CMD ('REORG TABLE DB2ADMIN.XCATENTRYEXT index CATENTRY_ID INPLACE')")
REORG TABLE DB2ADMIN.XCATENTRYEXT index CATENTRY_ID INPLACE
REORG TABLE DB2ADMIN.XCATENTRYEXT
REORG INDEXES I0000908 FOR TABLE DB2ADMIN.XCATENTRYEXT
Run Code Online (Sandbox Code Playgroud)
但是所有查询在结果中都有相同的错误
DB2 SQL error: SQLCODE: -104, SQLSTATE: 42601, SQLERRMC: Database;BEGIN-OF-STATEMENT;<variable_set>
Message: An unexpected token "Database" was found following "BEGIN-OF-STATEMENT". Expected tokens may include: "<variable_set>".
Run Code Online (Sandbox Code Playgroud)
我坚持这个错误,我甚至无法更新该特定表的任何列.
我遇到了DB2问题.我刚刚将db2安装为db2admin并使用密码.当我尝试连接到数据库时,它已成功完成,并且在运行任何简单的选择查询时,它会给我以下错误: -
DB2 SQL错误:SQLCODE = -204,SQLSTATE = 42704,SQLERRMC = DB2ADMIN.LOGIN,DRIVER = 3.57.82
我有一个名为onp的数据库和一个名为'login'的表,其中有一个名为'login'的表,其中包含两个字段username和password.
查询我正在运行
DB2 SQL错误:SQLCODE = -204,SQLSTATE = 42704,SQLERRMC = DB2ADMIN.LOGIN,DRIVER = 3.57.82
DB2 SQL错误:SQLCODE = -551,SQLSTATE = 42501,SQLERRMC = DB2ADMIN; SELECT; SYSTEM.LOGIN,DRIVER = 3.57.82
我已经尝试了网上的所有资源并完全耗尽.请帮我
我正在尝试创建一个在DB2中返回表的用户定义函数.这是我到目前为止所拥有的.
这是我使用的表:
CREATE TABLE "CORPDATA"."EMPLOYEE" (
"EMPNO" CHAR(6) NOT NULL,
"FIRSTNME" VARCHAR(12) NOT NULL,
"MIDINIT" CHAR(1) NOT NULL,
"LASTNAME" VARCHAR(15) NOT NULL,
"WORKDEPT" CHAR(3),
"PHONENO" CHAR(4),
"HIREDATE" DATE,
"JOB" CHAR(8),
"EDLEVEL" SMALLINT NOT NULL,
"SEX" CHAR(1),
"BIRTHDATE" DATE,
"SALARY" DECIMAL(9 , 2),
"BONUS" DECIMAL(9 , 2),
"COMM" DECIMAL(9 , 2)
);
ALTER TABLE "CORPDATA"."EMPLOYEE" ADD CONSTRAINT "PK_EMPLOYEE" PRIMARY KEY
("EMPNO");
Run Code Online (Sandbox Code Playgroud)
这是一个用户定义的函数,它返回一个表(工作正常):
CREATE OR REPLACE FUNCTION "CORPDATA"."DEPTEMPLOYEES" (DEPTNO CHAR(3))
RETURNS TABLE (EMPNO CHAR(6),
LASTNAME VARCHAR(15),
FIRSTNAME VARCHAR(12))
LANGUAGE SQL
READS SQL …Run Code Online (Sandbox Code Playgroud) 在DB2联合数据库(基于远程服务器和昵称)中,我需要清理模型并从另一个数据库重新创建它.我需要删除除那些服务器和昵称之外的每个数据库对象.
我知道如何从SYSCAT模式中检索对象列表.现在我需要在每个上运行DROP语句.显然,依赖关系会受到阻碍.
蛮力方法是在循环中运行DROP直到所有成功,但是根据顺序(幸运与否),可能需要很长时间.
您是否知道有效订购DROP语句的方法,以便删除的总时间最短?
预计不会有完美的解决方案.一个相当聪明的解决方案就足够了.
谢谢
我有一个mydb我想要删除的DB2数据库(让我们称之为).但是,当我这样做时,db2 drop db mydb我会回来
SQL1035N操作失败,因为指定的数据库无法在请求的模式下连接.SQLSTATE = 57019
我究竟做错了什么?
HEXTORAW 是多个 RDBMS 中的一个函数,例如Oracle和LUW 上的 DB2。它接受一个字符或整数输入,并基本上将其转换为十六进制值。
HEXTORAW(1234) = x'1234'
Run Code Online (Sandbox Code Playgroud)
这种类型转换的算法是什么?幕后代码发生了什么?
(这是因为想要在没有 HEXTORAW 函数的 RDBMS 中创建此函数。)
我需要一个查询,它将输出两个给定日期之间的日期列表.
例如,如果我的开始日期是2016年2月23日,结束日期是02/03/2016,我期待以下输出:
Date
----
23/02/2016
24/02/2016
25/02/2016
26/02/2016
27/02/2016
28/02/2016
29/02/2016
01/03/2016
02/03/2016
Run Code Online (Sandbox Code Playgroud)
另外,我只需要使用SQL(不使用'WITH'语句或表).请帮忙.
我正在运行一个联合两个非常大的表的 db2 查询。我十小时前就开始查询了,现在好像还没有完成。
但是,当我使用 检查进程的状态时top,它显示状态为“S”。这是否意味着我的查询停止运行?但我找不到任何错误消息。
我如何检查查询发生了什么?
我试图在db2中重命名一个表,就像这样
rename table schema1.mytable to schema2.mytable
Run Code Online (Sandbox Code Playgroud)
但收到以下错误消息:
the name "mytable" has the wrong number of qualifiers.. SQLCODE=-108,SQLSTATE=42601
Run Code Online (Sandbox Code Playgroud)
这里有什么问题....我正在使用IBM publib文档中的确切语法.