- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题
我有一个 SQLRPGLE 程序可以执行如下所示的查询:
SELECT orapdt, oraptm, orodr#, c.ccctls, orbill, b.cuslmn, b.cusvrp, orocty, orost, o.cubzip, o.cucnty, ordcty, ordst, d.cubzip, d.cucnty
FROM order
LEFT JOIN cmtctlf c ON orbill = c.cccode
LEFT JOIN custmast b ON orbill = b.cucode
LEFT JOIN custmast o ON orldat = o.cucode
LEFT JOIN custmast d ON orcons = d.cucode
WHERE
orstat != 'C' AND
orbill IN ('ABCDE', 'VWXYZ', 'JKFRTE') AND
orapdt BETWEEN 2012365 AND 2013362 AND
o.cucnty = 'USA' AND
(o.cubzip LIKE '760%' OR o.cubzip LIKE '761%' OR o.cubzip LIKE '762%') AND
d.cubzip = '38652' AND
ordcty = 'NA' AND
ordst = 'MS' AND
d.cucnty = 'USA'
ORDER BY orapdt, oraptm, orodr#
字段定义:
orapdt 7 0
oraptm 4a
orodr# 7a
c.ccctls 6a
orbill 6a
b.cuslmn 2a
b.cusvrp 3a
orocty 4a
orost 2a
o.cubzip 5a
o.cucnty 3a
ordcty 4a
ordst 2a
d.cubzip 5a
d.cucnty 3a
c.cccode 6a
b.cucode 6a
o.cucode 6a
d.cucode 6a
我在作业日志中看到以下错误:
Field HVR0001 and value 1 not compatible. Reason 7.
Conversion error on host variable or parameter *N.
当我提示额外的消息信息时,我被告知:
The attributes of variable field HVR0001 in query record format FORMAT0001 are not compatible with the attributes of value number 1. The value is *N. The reason code is 7.
7 -- Value contains numeric data that is not valid
和
Host variable or parameter *N or entry 1 in a descriptor area contains a value that cannot be converted to the attributes required by the statement. Error type 6 occurred.
6 -- Numeric data that is not valid.
这些错误是通过打开游标触发的:
...
exec sql PREPARE S1 FROM :sql_stmt;
exec sql DECLARE C1 SCROLL CURSOR FOR S1;
exec sql OPEN C1;
...
我的 outq 中也有 QSQSVCDMP 文件,其中充满了转储信息。我在其中看到的唯一有用的东西是对 CPF4278 和 CPD4374 的引用
CPF4278 表示查询定义模板 &1 无效。
CPD4374 表示 字段 &1 和值 &3 不兼容。原因 &5.
不幸的是,错误消息本身并不存在,只有字符串“CPF4278”和“CPD4374”。
在我监控SQL错误代码的程序中,它们都是一样的:
SQLSTATE: 22023
SQLCODE: -302
SQLERRMC: <non-displayable character>*N
错误状态/代码表示"A parameter or variable value is invalid."
我试过的...
经过多次谷歌搜索后,我尝试了:
我在问什么......
如何找出哪个字段中有错误数据?我知道 HVR0001
无效,但是 HVR0001
代表哪个字段?我尝试以不同的顺序选择字段,但总是 HVR0001
具有无效值。
理想情况下,我希望能够打印出所有 HVR* 字段/值,以便我可以检查它们。
当我查看编译列表时,没有列出任何 HVR* 字段。列出了一些 SQL_* 字段,我可以看到 SQL_00011
用于临时保存放入 orapdt
的数据。 SQL_00011
的定义与 orapdt
完全相同(7,0 压缩)。这是我查询中唯一的数字字段...
我觉得我的问题是由文件的连接方式引起的,我的 orapdt
字段以某种方式被放入了一个无效值(可能是 NULL)。
我还认为我的问题与一个接一个地执行许多这些查询有关(每个查询的某些 WHERE 细节都会发生变化),因为我可以将其中一个失败的查询放入它自己的程序中然后运行它,它工作正常。
这是在 DB2 for i (V6R1) 上,所有涉及的文件都是使用 DDS 创建的
编辑:这是宿主变量(数据结构)和 LIKE 语句所需的两个外部数据结构:
d eds_custmast e ds extname('CUSTMAST') inz
d eds_order e ds extname('ORDER') inz
d o ds
d orapdt like(ORAPDT)
d oraptm like(ORAPTM)
d orodr# like(ORODR#)
d orctls like(CUCODE)
d orbill like(ORBILL)
d orslmn like(CUSLMN)
d orcsr like(CUSVRP)
d orocty like(OROCTY)
d orost like(OROST)
d orozip like(CUBZIP)
d orocntry like(CUCNTY)
d ordcty like(ORDCTY)
d ordst like(ORDST)
d ordzip like(CUBZIP)
d ordcntry like(CUCNTY)
// Define an array to indicate nulls...
d o1nv s 3i 0 dim(15)
下面是实际获取数据的 fetch 语句:
dow sqlcode = *zeros;
exec sql FETCH NEXT FROM C1 INTO :o :o1nv;
if sqlcode = *zeros;
// process the data.
endif;
enddo;
exec sql CLOSE C1;
我之前没有包括这个只是因为当我打开游标而不是获取行时发生错误。 OPEN 语句不应该知道有关 o
数据结构的任何信息。
至于 WHERE 子句中的哪些变化 - 所有这些都是动态构建的(因此可以改变),除了:
orstat != 'C' AND orapdt BETWEEN 2012365 AND 2013362
最佳答案
找出真正的错误一点也不容易。我倾向于将这些语句复制到 IBM i Navigator 中,并使用 Visual Explain 来尝试了解优化器做出的决定。另一种方法是执行 STRDBG 并查看作业日志。当 STRDBG 生效时,优化器会将信息性消息放入作业日志中。但即便如此,也很难弄清楚。
在这种情况下,只有一个数字列,orapdt
。在没有该列的情况下尝试查询,看看这是否是罪魁祸首。
关于db2 - SQLRPGLE 中 OPEN 游标上的 SQL -302,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16571234/
我当前正在存储给定产品的上传图像,如下所示: class Product(db.Model): images= db.ListProperty(db.Blob) # More prop
每次对架构或新迁移文件进行更改时,我都会运行以下命令: rake db:drop db:create db:migrate db:seed 是否有预先构建的等效方法来执行此操作? 我从我读到的内容中想
在 android 中使用房间作为数据库。当我试图在 sqlviewer 中查看数据时,在数据库文件中找不到表Myapp.db 文件为空。数据/data/packageName/databases/M
我搜索并尝试了很多次,但没有找到我的答案。我有一些用小 cucumber (在 Rails 项目中)编写的项目的功能文件。所有步骤都已定义,如果我单独启动它们,功能本身运行得很好。我可以将所有场景与我
您必须承认,对于 Rails 和数据库的新手来说,rubyonrails.org 上的官方解释使所有这四个任务听起来完全一样。引用: rake db:test:clone Recreate the
当我尝试运行时: heroku run rake db:drop db:create db:migrate 我得到错误: Running rake db:drop attached to termin
rake db:migrate 和 rake db:reset 之间的区别对我来说非常清楚。我不明白的是 rake db:schema:load 与前两者有何不同。 只是为了确保我在同一页面上: ra
我们都知道,我们可以使用 Azure 函数(使用 out 参数或使用 return)在 cosmos DB 中一次保存一个文档,例如: object outputDocument = new { i
我有一个包含 60 多个表的 mysql 数据库。这是在我将 joomla 版本 2.5.3 从本地灯移植到网络服务器时构建的。 我运行 mysql-db: 移植后我发现我无法登录 amdin 区域。
我想轻松地将现有数据库迁移到 Azure 托管。在我的项目中,我使用 Entity Framework DB First。有什么经验教训或例子可以说明如何做到这一点吗? 最佳答案 您本地使用什么数据库
所以,我一直在使用 MagicalRecord 开发 iPad 应用程序,最近在转移到自动迁移商店后我遇到了一些问题。我需要将我的 .db 文件从一个设备同步到另一个设备,所以我需要所有数据都在 .d
自从我在 Heroku 上部署并希望与生产相匹配后,我最近切换到 postgres 来开发一个 Rails 应用程序。当我将数据库名称设置为“postgres”时,我的应用程序安装了 Postgres
我使用 oledb 提供程序(SQLOLEDB 和 SQL Native OLEDB 提供程序)创建了一个示例应用程序。 案例 1:提供者 = SQLOLEDB hr = ::CoInitialize
我正在为 NodeJs 使用 mongodb 驱动程序,其中有 3 个方法: 1) db.collection.insert 2) 数据库.collection.insertOne 3) db.col
我是 datomic 的新手,我仍在努力弄清楚系统是如何构建的。特别是,我不明白 :db.part/db 扮演什么角色,因为每次安装架构时似乎都需要它。有人可以解释一下这一切意味着什么吗? (需要 '
Berkeley DB 是否有空间索引,例如 R-tree? 最佳答案 有人问the same question on the Oracle forum .还没有甲骨文回答。但答案是否定的,它没有任何
请解释一下这是什么意思 $db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE); 它给了我一个错误 "E
berkeley-db-je 的最新版本是什么? 来自 oracle , 为 7.5。 但来自maven存储库,它是 18.3.12。 有没有人知道更多的细节? 最佳答案 Berkeley DB Ja
我不明白查询构建器的替换和更新之间的区别。尤其是替换文档... This method executes a REPLACE statement, which is basically the SQL
看起来 BerkeleyDB 被 Oracle 收购了,它没有在其网站上发布源代码? 最佳答案 Sleepycat 于 2006 年被 Oracle 收购。该产品继续在原始开源许可下可用,并继续得到增
我是一名优秀的程序员,十分优秀!