【发布时间】:2014-06-19 21:34:36
【问题描述】:
将在 SQL 中查询的数据转移到 i 系列平台 (AS400) 上的表中。我正在查询 3 行,需要在 AS400 i 系列平台上的表中填充这些行。 AS400 中的表已经创建,并且有必要的列来接受来自 SQL 的数据。 AS400 表列 = PPRP#1、PPDATE、PPCOUNT
SQL 命令
select b.new_SalesrepId as PPRP#1, max(CONVERT(varchar(8), a.ScheduledStart, 112)) as PPDATE, count(b.new_SalesrepId) as PPCOUNT from ActivityPointerBase as a
join SystemUserExtensionBase as b on b.SystemUserId = a.OwnerId
where a.ActivityTypeCode = '4201' and b.new_SalesrepId is not NULL and a.StateCode = '1' and a.ScheduledStart <= GetDate()
group by b.new_SalesrepId, CONVERT(varchar(8), a.ScheduledStart, 112)
order by b.new_SalesrepId ASC
这将是一项夜间工作,因此在晚上 11 点 SQL 将查询上面的记录,然后将它们写入 AS400 表的正确列。
我不熟悉的唯一部分是如何告诉 SQL 将记录写入 AS400 表?
更新 1:我能够成功地通过在 SQL 中创建链接服务器到我们的 i 系列框。必须启用某些设置才能使连接正常工作。如果有人想知道就问吧。
更新 2:好的,我让这条语句成功运行 select * from AS400.S062f7ar.APLUS83MDS.PEPAPPTS',但是当我尝试进行如下更新时:
Update [AS400].S062f7ar.APLUS83MDS.PEPAPPTS
set PPCOUNT = '7'
where PPREP1 = 'FIR00107'
我收到一条消息:链接服务器“AS400”的 OLE DB 提供程序“IBMDASQL”返回消息“SQL7008:APLUS83MDS 中的 PEPAPPTS 对操作无效。 原因 。 . . . . :原因码是 3。原因码是: 1 -- PEPAPPTS 没有成员。 2 -- PEPAPPTS 已免费存储。 3 -- PEPAPPTS 未记录,对期刊无权限,或期刊状态为 *STANDBY。具有 CASCADE、SET NULL 或 SET DEFAULT 的 RI 约束操作的文件必须记入同一日志。恢复 。 . . : 3 -- 开始在 PEPAPPTS (STRJRNPF) 上记录日志,获取日志的访问权限,或更改...
这是我必须在 i 系列文件上允许写入此表的内容吗?
【问题讨论】:
标签: sql odbc ibm-midrange jobs transfer