Oracle11g 在使用ESQL从Oracle获取数据时,字符串会自动修剪,但在DB2中可以正常工作
我正在使用ESQL从Oracle获取数据并创建XML消息。 除了列名文件名被自动删减为20个字符外,一切正常。创建XML消息的ESQL的一部分:Oracle11g 在使用ESQL从Oracle获取数据时,字符串会自动修剪,但在DB2中可以正常工作,oracle11g,extended-sql,Oracle11g,Extended Sql,我正在使用ESQL从Oracle获取数据并创建XML消息。 除了列名文件名被自动删减为20个字符外,一切正常。创建XML消息的ESQL的一部分: CREATE COMPUTE MODULE FileExpectedEvent CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN DECLARE now CHARACTER; SET now = CAST(CURRENT_DATE AS CHARACTER FORM
CREATE COMPUTE MODULE FileExpectedEvent
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
DECLARE now CHARACTER;
SET now = CAST(CURRENT_DATE AS CHARACTER FORMAT 'yyyy-MM-dd');
CALL CopyMessageHeaders();
DECLARE DB_Schema NAME BAM_DB_Schema;
SET Environment.Variables.ExpectedFiles.Rec[]
= (SELECT TRIM(A.FILENAME) AS FILENAME, A.EXPECTED_DATE, A.EXPECTED_TIME, A.EXPECTED_ALERT_SENT, A.ARRIVED_DATE, A.ARRIVED_TIME
FROM Database.DB_Schema.BAM_EXPECTED_FILES AS A
WHERE A.EXPECTED_DATE = now
AND (A.EXPECTED_ALERT_SENT IS NULL OR A.EXPECTED_ALERT_SENT <> 'Y'));
DECLARE ResultRef REFERENCE TO Environment.Variables.ExpectedFiles.Rec[1];
DECLARE expectedTimeStamp TIMESTAMP;
DECLARE ns1 NAMESPACE 'http:///XYZ.xsd';
WHILE LASTMOVE(ResultRef) = TRUE DO
SET OutputRoot.MQMD.Version = 2;
SET OutputRoot.MQMD.Format = 'MQSTR ';
SET OutputRoot.XMLNSC.ns1:ExpectedFile.(XML.NamespaceDecl)xmlns = 'http:///XYX.xsd';
SET OutputRoot.XMLNSC.ns1:ExpectedFile.ns1:FileName = ResultRef.FILENAME;
这是生成的示例XML
<NS1:ExpectedFile>
<NS1:FileName> OH_ODJFS_DAILY_83420</NS1:FileName>
<NS1:ExpectedDate> 2014-09-25</NS1:ExpectedDate>
<NS1:ExpectedTime> 07:00:00</NS1:ExpectedTime>
<NS1:ExpectedAlertTime> 2014-09-25T13:00:00-05:00</NS1:ExpectedAlertTime>
<NS1:ExpectedDateTimeStamp> 2014-09-25T12:00:00-05:00</NS1:ExpectedDateTimeStamp>
</NS1:ExpectedFile>
一切正常,但OH_ODJFS_DAILY_83420自动将长度限制为20。20以上的文件名将被删除。[这在DB2中可以正常工作]
需要这方面的帮助…提前谢谢ESQL变量是否有一些最大限制,或者大小取决于一些环境变量设置…这里有人知道ESQL中变量长度的限制吗?急需帮助