DB2 SQL error: SQLCODE: -204, SQLSTATE: 42704, SQLERRMC: STAR9.T_LIANG,这个问题怎么在hibernate中如
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DB2 SQL error: SQLCODE: -204, SQLSTATE: 42704, SQLERRMC: STAR9.T_LIANG,这个问题怎么在hibernate中如相关的知识,希望对你有一定的参考价值。
解决?
我一直在奇怪是不是我的映射文件出了什么问题,你说的这个我也不是很清楚,我的数据库是连的服务器上的
原因:系统当前时间早于数据库函数执行时间,当系统连接数据库的时候,发现规定的数据库函数执行时间还没到,就出现上述原因。
解决办法:把系统当前时间往后调。
查看数据库函数的执行时间
db2 select funcschema, funcname, create_time from syscat.functions 参考技术A SQL1585N不存在具有足够页大小的系统临时表空间。
解释:
可能发生了下列其中一种情况:
1. 系统临时表的行长度超过了数据库中最大系统临时表空间中可接受的限
制。
2. 系统临时表中所需的列数超过了数据库中最大系统临时表空间中可接受
的限制。
系统临时表空间限制取决于其页大小。这些值是:
最大 最大 临时
记录 列数 表空间的
长度 页大小
----------- ---- ------------
1957 字节 244 2K
4005 字节 500 4K
8101 字节 1012 8K
16293 字节 1012 16K
32677 字节 1012 32K
用户响应:
创建受支持的更大页大小的系统临时表空间(如果还没有的话)。若已存在
这种表空间,则从系统临时表中消去一列或多列。按需要创建独立表或视图
来存放超出限制的更多信息。
sqlcode : -1585
sqlstate : 54048 参考技术B 1.查看有没有DB2ADMIN.AA表,如果有
2.到db2控制台增加用DB2ADMIN并授权限。(给表权限拥有者授权也可以是当前用户) 参考技术C 说明你用的数据库 用户名肯定不止一个 你所查询的表没有在当前项目配置的数据库用户名下 参考技术D 以下是对这个错误的解释。
SQL0204N "<名称>" 是一个未定义的名称。
解释:
此错误由以下之一引起:
o 未在数据库中定义由 "<名称>" 标识的对象。
o 在表上未定义由 "<名称>" 标识的数据分区。
o 正在使用某个数据类型。此错误可能是由于下
列原因而发生的:
- 如果 "<名称>"
是限定名称,则具有此名称的数据类型在数据
库中不存 在。
- 如果 "<名称>"
是非限定名称,则用户的函数路径不包含期望
的数据类 型所属于的模式。
- 该数据类型在创建时间戳记早于程序包绑定时
间的数据库中不存在(适用于静态语句)。
- 如果数据类型在 CREATE TYPE 语句的 UNDER
子句中,则该类型名可能与正定义的类型相同
,这 是无效的。
o 下列其中一项中正在引用某个函数:
- DROP FUNCTION 语句
- COMMENT ON FUNCTION 语句
- CREATE FUNCTION 语句的 SOURCE 子句
如果 "<名称>"
是限定名称,则函数不存在。如果
"<名称>"
是非限定名称,则当前函数路径的任何模式中
都不存 在
此名称的函数。注意,函数不能以
COALESCE、 NULLIF 或 VALUE
内置函数作为源函数。
o 在 CREATE SECURITY LABEL COMPONENT 语句中 UNDER
子句右边使用了名为“名称”的元素,但尚未
将该 元素定义为 ROOT
或者在其他某个元素下方(UNDER)。
o 下列其中一个标量函数指定了“名称”标识的
安全策略,但在数据库中未定义该安全策略。
- SECLABEL
- SECLABEL_TO_CHAR
- SECLABEL_BY_NAME
可为任何类型的数据库对象生成此返回码。
联合系统用户:在数据库中未定义由 "<名称>"
标识的对象,或者 "<名称>" 不是 DROP NICKNAME
语句中的昵称。
某些数据源不向 "<名称>"
提供适当的值。在这些情况下,消息标记将具有以下格
式: "OBJECT:<数据源>
TABLE/VIEW",指示指定数据源的实际值未知。
不能处理该语句。
用户响应:
确保在 SQL 语句中正确指定了对象名(包括任何必需
的限定符),并且它存在。
如果该名称表示一个数据分区,则查询目录表
SYSCAT.DATAPARTITIONS
以找到一个表的所有数据分区。对于 SOURCE
子句中缺少的数据类型或函数,可能是该对象不存
在,或该对象处于某模式中,但该模式不在您的函
数路径中。对于 CREATE SECURITY LABEL COMPONENT
语句来说,确保先将每个元素指定为 ROOT 或者 UNDER
子句中的子代,然后再在 UNDER
子句中将其指定为父代元素。对于标量函数
SECLABEL、SECLABEL_TO_CHAR 或 SECLABEL_BY_NAME
来说,确保对参数“安全策略名”指定了有效的安
全策略。
联合系统用户:如果该语句是 DROP
NICKNAME,则确保该对象实际上是一个昵称。该对象可
能不存在于联合数据库中或数据源上。验证联合数
据库对象(如果有)和数据源对象(如果有)的存
在情况。
sqlcode : -204
sqlstate : 42704本回答被提问者采纳
DB2 SQL Error: SQLCODE=-1585, SQLSTATE=54048
DB2 执行SQL报错: DB2 SQL Error: SQLCODE=-1585, SQLSTATE=54048
你建的db2数据库没有建足够大的临时表空间,新建一个足够大的临时表空间
1.创建数据库
db2 "create database testdb automatic storage yes on /dbauto dbpath on /database using codeset UTF-8 territory cn collate using system"
dbpath on 表示数据库目录 using codeset XXXX terriory XXX 指定数据库编码集和区域
1.1显示实例下创建的数据库
db2 list db directory
2.数据库连接
db2 connect to testdb
3.创建缓冲池
db2 "create bufferpool bp32k size 10000 pagesize 32k" size表示页数,pagesize表示页大小,size*pagesize就是缓冲池的内存大小
4.创建数据库管理(DMS)的数据表空间
db2 "create large tablespace tbs_data pagesize 32k managed by database using (file ‘/data1/tbs_data/cont0‘ 100M, file ‘/data1/tbs_data/cont1‘ 100M) extentsize 32 prefetchsize automatic bufferpool bp32k no file system caching"
5.创建系统管理(SMS)的临时表空间
db2 "create temporary tablespace tbs_temp pagesize 32k mamaged by system using (‘/data1/tbs_temp‘) bufferpool bp32k"
using 指定表空间的容器,SMS支持的容器类型只是目录
6.创建(SMS)管理的用户临时表空间
db2 "create user temporary tablespace tbs_user_temp pagesize 32k managed by system using (‘/data1/tbs_usertemp‘) bufferpool bp32k"
7.创建自动存储管理(Automatic Storage)的表空间
7.1 db2 "create tablespace tbs_index pagesize 32k bufferpool bp32k"
7.2 db2 "create tablespace tbs_data2 initialsize 100M increasesize 100M maxsize 1000G"
只有建库时启用了automatic storage yes,表空间才支持自动存储管理
8.显示每个表空间核心信息
db2 list tablespaces
8.1显示指定表空间相关信息
db2 list tablespace containers for <tablespace_id> show detail
8.2比list tablespaces更详细的显示表空间信息
db2 get snapshot for tablespaces on <db_name>
9.显示表空间的配置信息,使用情况和容器信息
db2pd -d <db_name> tablespaces
10.表空间容器的更改
10.1alter tablespace <db_name> add/drop/extend/reduce/resize
//add和drop操作,表空间会发生数据重新平衡(rebalance),对于reduce和resize操作,需要确保更改后的表空间容器有足够的空间,否则db2会拒绝该操作。
10.2alter tablespace <db_name> begin new stripe set
//begin new stripe set 选项是当已有容器使用完后,再使用新增加的容器,该选项不会在容器间做Rebalance ,不会对系统造成性能影响,但它会造成数据偏移。
使用方法:db2 "db2 alter tablespace data_ts2 add(file ‘/data1/ts2/cont2‘ 50G)"
10.3db2 alter database db_name add storage on db_path3
//对于自动存储管理的表空间,无法在表空间级进行容器更改,只能在数据库级别,因为自动存储路径是在建库时指定的。可以使用add storage on 选项为数据库添加新的存储路径。
建库脚本:
DB2安装默认用户: db2inst1 db2iadm1 第一步新建用户,添加至DB2用户,并切换至新建用户 ---------------------------------------------------------------------------------- [[email protected] ~]# useradd -g db2iadm1 -u 1017 -d /usr/slsadmin -m slsadmin [[email protected] ~]# passwd slsadmin [[email protected] ~]# ####slsadmin789 [[email protected] ~]# cd /opt/ibm/db2/V10.5/instance/ [[email protected] instance]# ./db2icrt -u slsadmin slsadmin [[email protected] instance]# su - slsadmin ------------------------------------------------------------------------------------ 设置环境配置,允许远程TCP/IP访问。此处数字为端口号,需要用vi去etc/services中查找此用户的最小的端口号 ------------------------------------------------------------------------------------ [[email protected] ~]$ db2 update dbm cfg using SVCENAME 60012 [[email protected] ~]$ db2set DB2COMM=TCPIP [[email protected] ~]$ db2 ---------------------------------------------------------------------------------- 启动db2命令窗 ---------------------------------------------------------------------------------- db2 => db2start db2 => create db faldb using codeset GBK territory CN db2 => list db directory db2 => connect to faldb --db2 => CREATE SCHEMA "hbreport" AUTHORIZATION "hbreport" --size表示页数,pagesize表示页大小,size*pagesize就是缓冲池的内存大小 db2 => create bufferpool poolname immediate size 10000 pagesize 32k --创建数据库管理(DMS)的数据表空间 db2 => create tablespace faldb pagesize 32k managed by system using (‘/usr/slsadmin/NODE0000/sqlt0003.0‘) bufferpool poolname db2 => create temporary tablespace faldb_temp pagesize 32k managed by system using (‘/usr/slsadmin/NODE0000/faldb_temp‘) bufferpool poolname db2 => commit work db2 => connect reset db2 => terminate 执行建库SQL语句 ---------------------------------------------------------------------------------- [[email protected] ~]$ db2 -tvf /home/WGJ/faldb20160215.sql [[email protected] ~]$ db2move faldb import -u slsadmin -p slsadmin789 一定要关闭防火墙! 导出数据库 ---------------------------------------------------------------------------------- [[email protected] ~]$ db2look -d faldb -e -a -x -i slsadmin -w slsadmin789 -0 faldb20160215.sql #导出数据库结构 [[email protected] ~]$ db2move faldb export -u slsadmin -p slsadmin789 #导出数据库数据
以上是关于DB2 SQL error: SQLCODE: -204, SQLSTATE: 42704, SQLERRMC: STAR9.T_LIANG,这个问题怎么在hibernate中如的主要内容,如果未能解决你的问题,请参考以下文章
DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null
sql语句报错,DB2 SQL Error: SQLCODE=-203, SQLST
DB2 Error : SQLCODE=-802,SQLSTATE=22003 异常的原因
DB2 SQL error: SQLCODE: -1585, SQLSTATE: 54048, SQLERRMC: null
DB2 SQL error: SQLCODE: -204, SQLSTATE: 42704, SQLERRMC: STAR9.T_LIANG,这个问题怎么在hibernate中如