我有一系列ASCII平面文件从大型机进来,由C#应用程序处理.引入了一个带有Packed Decimal(COMP-3)字段的新Feed,需要将其转换为数值.
使用ASCII传输模式通过FTP传输文件.我担心二进制字段可能包含将被解释为非常低的ASCII代码或控制字符而不是值 - 或者更糟糕的是,可能在FTP进程中丢失.
更重要的是,字段被读作字符串.我可以灵活地解决这个问题(即某种流),但业务会给我带来阻力.
该要求为"从HEX转换为ASCII",但显然没有产生正确的值.任何帮助,将不胜感激; 只要您能够解释转换过程的逻辑,它就不必是特定于语言的.
我试图在Linux Centos服务器上访问php作为/ 400(iSeries)db2数据库.
我尽可能地使用这个IBM指南,(尽管我们无法使GUI配置实用程序正常工作.)
http://www-03.ibm.com/systems/i/soft...ide/index.html
我下载并成功安装了iSeriesAccess驱动程序和先决条件.
rpm -i iSeriesAccess-5.4.0-1.6.i386.rpm
我已配置这些文件来定义驱动程序/ DNS:
/etc/odbc.ini和/etc/odbcinst.ini
[iSeries Access ODBC Driver] Description = iSeries Access for Linux ODBC Driver Driver = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so Setup = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so Driver64 = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so Setup64 = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so Threading = 2 DontDLClose = 1 UsageCount = 1
文件/etc/odbc.ini为空,所以我添加了这个配置:
[AS400] Description = iSeries Access ODBC Driver Driver = iSeries Access ODBC Driver System = 172.999.999.999 (from netstat option 1) UserID = my_user Password = my_pass Naming = 0 DefaultLibraries = QGPL Database = …
我来自MSSQL背景,当我问我公司的人是否在某些列上创建了索引时,他们会说是,但请指出这些东西称为逻辑文件.
在iSeries Navigator中,这些逻辑文件显示在"视图"类别下.当我单击"索引"类别时,没有任何内容,这让我相信实际上没有在任何列上创建索引,至少我理解它们.逻辑文件似乎是按特定列排序的视图.
所以我的问题是,逻辑文件和索引(MSSQL意义上的索引)是一回事吗?
我正在处理两个表之间的连接条件,其中一个要匹配的列是值的连接.我需要将tableA中的columnA加入tableB中columnB的前2个字符.
我已经开发了两个不同的语句来处理这个问题,我试图分析每种方法的性能.
方法1:
ON tB.columnB like tA.columnA || '%'
Run Code Online (Sandbox Code Playgroud)
方法2:
ON substr(tB.columnB,1,2) = tA.columnA
Run Code Online (Sandbox Code Playgroud)
与方法2相比,查询执行计划使用方法1的步骤少得多,但是,方法2的执行速度要快得多.此外,执行计划显示方法2的建议索引,可以提高其性能.
我在IBM iSeries上运行它,虽然对一般意义上的答案感兴趣,以了解有关sql查询优化的更多信息.
方法2执行得更快是否有意义?
这个问题类似,但看起来没有人对这些方法的性能差异提供任何具体的答案: LEFT()与LIKE运算符之间的T-SQL速度比较.
PS:需要这种类型的连接的表设计不是我此时可以更改的内容.我意识到将具有不同类型数据的字段分开是可取的.
我正在为DB2 Universal数据库使用JTOpen JDBC驱动程序.除了简单的语句之外,我对SQL的经验很少.
从这个问题中,我看到在尝试"在事务期间插入/更新非日记表中的行"时(抛弃),我得到了错误(SQL7008).
根据项目负责人的说法,我们的数据库没有记录,也不会很快(不要问我为什么,我不是DBA).但是,我正在开发一个能够commit一次性完成任务的项目(而不是每次调用执行时自动提交)几乎是必要的(并非完全需要,但它可以解决很多问题) .
有没有办法解决erorr SQL7008而不启用Journalling?
在DB2 V5R4中,当您修改DETERMINISTIC UDF的功能时它会返回缓存的响应一段时间...
有没有办法重置缓存的响应?
提前致谢.
我试图从另一个表中的另一个字段更新表中的字段.
正在更新的表将具有多个记录,这些记录需要从另一个表中的1个匹配进行更新.
例如,我有一百万行销售历史文件.这些百万条记录有大约40,000个不同的sku代码,每行有一个日期和时间戳.每个sku都会有多个记录.
我添加了一个名为MATCOST的新字段(材料成本).
我有第二个包含SKU和MATCOST的表.
所以我想用表2中相应的SKU的MATCOST标记表1中的每一行.当它不是一对一的关系时,我似乎无法实现这一点.
这是我尝试过的:
update
aulsprx3/cogtest2
set
matcost = (select Matcost from queryfiles/coskitscog where
aulsprx3/cogtest2.item99 = queryfiles/coskitscog.ITEM )
where
aulsprx3/cogtest2.item99=queryfiles/coskitscog.ITEM
Run Code Online (Sandbox Code Playgroud)
但这会导致SQL错误:列限定符或表COSKITSCOG未定义并突出显示最后一个对queryfiles/coskitscog.Item的引用中的q
有任何想法吗 ?
最亲切的问候
亚当
更新:这是我的表原则上的样子.1表包含销售数据,另一个包含销售商品的MATCOSTS.我需要使用COSKITCOG表中的数据更新Sales Data表(COGTEST2).我不能使用coalesce语句,因为它不是1对1关系,我使用的大多数选择函数都会导致多次选择的错误.唯一匹配的字段是Item = Item99
我找不到匹配多个的方法.在示例中,我们必须使用3个SQL语句,并只指定项目代码.但在现场我有大约40,000个物品代码和超过一百万个销售数据记录要更新.如果SQL不这样做,我想我必须尝试在RPG程序中编写它,但这暂时超出了我的范围.
感谢您的任何帮助,您可以提供.

当我使用JTOpen KeyedDataQueue类提供的read()方法时,我发现了一个奇怪的行为.
当达到超时时,我设置了90秒的超时和99%的读取执行,我的调用方法执行恢复.
至于其他1%,超时未被考虑/达到,我的呼叫方法保持挂起...
搜索了一下后我发现这篇文章:
http://archive.midrange.com/java400-l/201112/msg00056.html
基本上它证实了我的怀疑:
"我还发现DataQueue.read()超时功能是服务器端的,所以如果TCP/IP连接被静默拆除(我认为这是导致此问题的根本原因),它仍然会挂起."
我正在使用JTOpen的7.2版,我意识到版本7.9已经存在.我没有更新到7.9,因为我有很多使用7.2的关键应用程序是稳定的,这真的是第一个让我考虑更新到7.9的真实场景.
为了帮助我做出这个决定,我非常希望得到您的反馈,尤其是那些遇到这种情况并最终通过升级JTOpen解决它的人.
具体来说,是否存在此问题的解决方法,并且升级JTOpen对此有何帮助?将JTOpen升级到7.9会破坏7.2中的任何工作吗?
使用ILE编译器,在RPG中,您可以使用PSDS获取有关当前用户,作业名称等的信息.
如何使用ILE在C++程序中获得相同的信息?
我的目标是从RPG函数启动Java调用Web服务.(我知道,它很长,但它是我们需要的)
我/JavaLib在AS400上创建了一个文件夹,并复制了我们需要的所有必需的外部JAR.
使用静态方法创建Java类WebServiceCaller.Call()以调用Web Service.当我运行我的RPG程序时,一切都很好,RPG调用此方法.
我得到一个Java异常:
信息 ....:调用Java方法(CGD F)时收到Java异常.
原因.....:程序WAL60326/WEBSERCALR中的RPG过程WEBSERCALR在
使用签名"(LwebService.Input;)LwebService.Output;"调用方法"Call"时收到Java异常"java.lang.NoClassDefFoundError:javax.xml.rpc.ServiceException" 在类
"webService.WebServiceCaller"中.
CLASSPATH变量:
/ JavaLib:/家庭/ WAL60326/WebServiceCaller
所以我相信我的RPG和Java类很好,我相信我已经设置了我的CLASSPATH变量.不确定还有什么要检查.
所以我需要的jar文件是jaxrpc.jar我检查过的; 它确实存在于我的/JavaLib.能够在AS400上检查我的Java版本java version "1.5.0".并按照这些说明检查我的操作系统是否为V6R1.
可能是我的Java版本已经过时了,这个Jar文件要加载/工作吗?这甚至是可能吗?
这是我的源代码:
Java:WebServiceCaller.Java
package webService;
import java.rmi.RemoteException;
import stocklistGetBids.GetBidsProxy;
public class WebServiceCaller {
public static Output Call(Input in) { // Input Class, is just a way to hold all the input together
Output out = null; // Output Class, holds all the output together
try …Run Code Online (Sandbox Code Playgroud)