我有一个登录到DB2数据库的应用程序。每个日志都存储在一个每日表中,这意味着我有几个表,每天一个。
由于应用程序运行了相当长一段时间,我放弃了一些旧的每日表,但是磁盘空间没有被回收。
我理解这在DB2中是正常的,所以我目瞪口呆,发现可以使用以下命令来回收空间:
db2 alter tablespace <table space> reduce max
由于存储每日日志表的表空间称为USERSPACE1,所以我成功地执行了以下命令:
db2 alter tablespace userspace1 reduce max
不幸的是,DB2实例使用的磁盘空间仍然相同.
我在某个地方读到可以
我对DB2非常陌生,我已经安装了Express C版本,在运行一个简单的查询时遇到了一些问题。
SELECT A,B,C,D,E,F,G, H FROM TABLE_NAME
where A=9999 ORDER BY D
注意:A通过H是表中唯一的列。当我这么做的时候,我得到了一个例外:
DB2 SQL错误: SQLCODE:-1585,SQLSTATE: 54048,SQLERRMC: null消息:无法创建临时表,因为没有具有兼容页大小的可用系统临时表空间。
更多的例外。
DB2 SQL错误: SQLCODE:-727,SQLSTATE: 56098,SQLERRMC: 2;-
create procedure SpecialPrice(IN T_ID int,Discount_P Decimal(5,3))
Begin
Update Ticket
set Price=Price*Discount_P
where T_ID = Ticket_ID ;
End@
我想创建一个存储过程来更新表ticket上的折扣价格,但是我在创建这个存储过程时遇到了问题,它有错误,因为我是在IBM Data studio中运行这些代码的,所以在“请帮助”旁边显示这些错误
The errors :
1)on the line Begin
DB2 for Linux, UNIX,
我的问题是,在我的DB2数据库(SLES,Db2 v10.5)中,我的用户临时表空间都处于状态Restore pending, Storage must be defined, Storage may be defined中。
当我启动以下命令db2 list tablespace时,我得到以下输出(例如):
Tablespace ID = 6
Name = USERTEMP4
Type = System managed
我正在尝试编写一个sql脚本来检查表是否存在,如果存在则将其删除,然后重新创建表。我正在尝试使用DB2 9.7LUW的sql脚本和IBM Data studio 2.2来实现这一点。
(1)声明@tablefound整数;
SET @TABLEFOUND = (select COUNT(*) from syscat.tables where tabschema = 'AELUM‘and tabname = 'PRODUCTS');
(2) IF @TABLEFOUND>0 THEN
DROP TABLE "AELUM"."PRODUCTS
我有一个以逗号分隔的.csv文件(位于C:/)。我使用DB2 LOAD实用程序来加载DB2表中CSV文件中的数据。
LOAD CLIENT FROM C:\Users\somepath\FileName.csv of del
MODIFIED BY NOCHARDEL COLDEL, insert into SchemaName.TABLE_NAME;
CSV文件有25行。在该实用程序完成后,我得到了NOCHARDEL的错误消息。我的表已正确加载了25行。现在,当我试图对该模式中的任何表执行insert/update/delete语句时,我将得到以下错误。
查找错误-- DB2数据库错
我曾经用下面的脚本为我的Oracle表创建复合Oracle。
CREATE INDEX index_name ON my_table (column1,column2,column3) TABLESPACE tablespace_name;
当我在DB2中尝试同样的操作时,在tablespace上得到了一些错误,我尝试使用以下脚本,
CREATE INDEX index_name ON my_table (column1,column2,column3);
这在DB2行吗?因为我对DB2很陌生,在DB2中搜索复合索引时没有语法发现,所以不确定这一点。需要建议。
对于z/OS上的DB2的以下查询,最大可能的结果数是多少?
SELECT NAME FROM SYSIBM.SYSTABLES WHERE TYPE='T' AND CREATOR=? ORDER BY NAME ASC
此查询的目的是获取DB2子系统中特定架构/创建者下的所有表名的列表。
我很难找到明确的答案。根据IBM的"“文章,DB2数据库的最大内部对象数为32767。对象包括视图、索引等。
对于一个模式下的最大表名,我更希望得到一个更具体的答案。例如,下面是中一个相关问题的摘录:
基于一个数据库中的32767个对象的限制,其中每个表空间有两个条目,表和索引每
我可以获得登录到的当前数据库服务器:
select
current server
from sysibm.sysdummy1
这不是我想要的。我的谷歌搜索只给出了这个解决方案。
我要数据库名。
在TSQL中,我可以执行以下操作以获得数据库名称:
select db_name()
但是,如何在DB2中获得当前的数据库名称?
编辑:到目前为止,感谢您的回答。您是对的,我使用了错误的术语(TSQL中的数据库)作为我希望在DB2中返回的内容。因此,由于我不确定它的名称(可能是表空间):
下面是否有返回单词“prodbean”的命令?
select
<command>
from
我有一个DB2查询(简单的insert语句),它试图插入大约27列。在这些列中,1是Clob,问题就在这里。对于我的Clob列,有时值甚至可能包含28K字符。在这种极端情况下,我得到了下面的错误,
A system temporary table space with sufficient page size does not exist .. SQLCODE=-1585, SQLSTATE=54048, DRIVER=3.64.82
在我搜索和浏览一些页面时,有一个名为“系统临时表空间”的实体,它将由DB在执行查询时使用(我不确定,但很少有页面说它只用于排序和连接,但我的查询中没有)。
在