包 XML 架构 V90

Microsoft HIS 2013(V9) 支持旧格式和新格式,其中包括用于验证 XML 文档的关联 XML 架构。 Microsoft HIS 2009 和 HIS 2010 (V8.5) 仅支持旧格式。

Microsoft 静态 SQL for DB2 自定义包 XML 文件包含多个元素,用于通知 DRDA 客户端和 DRDA 服务器如何使用 BNDOPT(绑定选项)和 BNDSQLSTT(将 SQL 语句绑定到 RDB 包)执行 DRDA 命令 BGNBND(开始将包绑定到 RDB)。 HostIntegrationStaticSql.xsd 介绍了可定义的 XML 元素、属性和值,用于描述静态 SQL 包绑定选项、包名称、包部分、语句、参数和结果集。 以下 XML 列表是自定义包 XML 的示例。

<?xml version="1.0" encoding="utf-8"?>  
<hostIntegration.staticSql xmlns="http://schemas.microsoft.com/his/StaticSql/2012">  
  
  <options bindAllowErrors="Validate"  
            bindAuthorizationKeep="true"  
            bindCheck="true"  
            bindReplace="true"  
            bindReplaceVersion=""  
            packageCcsidSbc="1208"  
            packageCcsidDbc="1208"  
            packageCcsidMbc="1200"  
            packageCharacterSubtype="Bit"  
            packageDecimalPrecision="15"  
            packageExecuteAuthorization="Requester"  
            bindExplain="AllExplainable"  
            packageIsolationLevel="RepeatableRead"  
            packageOwnerIdentifier=""  
            relationalDatabaseName=""  
            statementDateFormat="MdyHyphen"  
            statementDecimalDelimiter="Period"  
            defaultRdbCollection=""  
            releaseRelationalDatabase="Commit"  
            parallelProcessDegree="1"  
            keepPreparedStatement="None"  
            statementQueryProtocol="FixedRow"  
            statementStringDelimiter="Apostrophe"  
            statementTimeFormat="HmsColon"/>  
  
  <packages>  
    <package token="18BBB2BA1492DAC8"   
             version=""   
             collection="DSN8910"   
             id="DSN8HC3"   
             isolationLevel="RepeatableRead">  
      <sections>  
        <section number="1" alias="">  
          <statement number="1" sqlStatement="DECLARE CURDEPTLOC CURSOR FOR SELECT LOCATION FROM VHDEPT WHERE DEPTNO = :H AND LOCATION = CURRENT SERVER"/>  
            <parameters>  
              <parameter name="p00" nullable="false">  
                <smallInt length="2"/>  
              </parameter>  
              <parameter name="p01" nullable="false">  
                <int length="4" />  
              </parameter>  
              <parameter name="p02" nullable="false">  
                <bigInt length="8" />  
              </parameter>  
              <parameter name="p13" nullable="false">  
                <single length="4"/>  
              </parameter>  
              <parameter name="p14" nullable="false">  
                <double length="8"/>  
              </parameter>  
              <parameter name="p15" nullable="false">  
                <float length="8"/>  
              </parameter>  
              <parameter name="p16" nullable="false">  
                <real length="4" />  
              </parameter>  
              <parameter name="p17" nullable="false">  
                <date length="10"/>  
              </parameter>  
              <parameter name="p18" nullable="false">  
                <time length="8"/>  
              </parameter>  
              <parameter name="p19" nullable="false">  
                <timestamp length="26"/>  
              </parameter>  
              <parameter name="p03" nullable="false">  
                <char length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p04" nullable="false">  
                <charForBit length="1"/>  
              </parameter>  
              <parameter name="p05" nullable="false">  
                <varChar length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p06" nullable="false">  
                <varCharForBit length="1"/>  
              </parameter>  
              <parameter name="p07" nullable="false">  
                <graphic length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p08" nullable="false">  
                <varGraphic length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p09" nullable="false">  
                <blob length="1"/>  
              </parameter>  
              <parameter name="p10" nullable="false">  
                <clob length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p11" nullable="false">  
                <decimal precision="9" scale="4"/>  
              </parameter>  
              <parameter name="p12" nullable="false">  
                <numeric precision="9" scale="4"/>  
              </parameter>  
            </parameters>  
          <resultSet>  
            <columns>  
              <column name="p00" ordinal="0"/>  
              <column name="p01" ordinal="1"/>  
              <column name="p02" ordinal="2"/>  
              <column name="p03" ordinal="3"/>  
              <column name="p04" ordinal="4"/>  
              <column name="p05" ordinal="5"/>  
              <column name="p06" ordinal="6"/>  
              <column name="p07" ordinal="7"/>  
              <column name="p08" ordinal="8"/>  
              <column name="p09" ordinal="9"/>  
              <column name="p10" ordinal="10"/>  
              <column name="p11" ordinal="11"/>  
            </columns>  
          </resultSet>  
        </section>  
        <section number="2" alias="">  
          <statement number="2" sqlStatement="DECLARE CURDEPTLOC CURSOR FOR SELECT LOCATION FROM VHDEPT WHERE DEPTNO = :H AND LOCATION = CURRENT SERVER"/>  
            <parameters>  
              <parameter name="p00" nullable="false">  
                <smallInt length="2"/>  
              </parameter>  
              <parameter name="p01" nullable="false">  
                <int  length="4" />  
              </parameter>  
              <parameter name="p02" nullable="false">  
                <bigInt  length="8" />  
              </parameter>  
              <parameter name="p13" nullable="false">  
                <single length="4"/>  
              </parameter>  
              <parameter name="p14" nullable="false">  
                <double length="8"/>  
              </parameter>  
              <parameter name="p15" nullable="false">  
                <float length="8"/>  
              </parameter>  
              <parameter name="p16" nullable="false">  
                <real length="4" />  
              </parameter>  
              <parameter name="p17" nullable="false">  
                <date length="10"/>  
              </parameter>  
              <parameter name="p18" nullable="false">  
                <time length="8"/>  
              </parameter>  
              <parameter name="p19" nullable="false">  
                <timestamp length="26"/>  
              </parameter>  
              <parameter name="p03" nullable="false">  
                <char length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p04" nullable="false">  
                <charForBit length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p05" nullable="false">  
                <varChar length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p06" nullable="false">  
                <varCharForBit length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p07" nullable="false">  
                <graphic length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p08" nullable="false">  
                <varGraphic length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p09" nullable="false">  
                <blob length="1" ccsid="65535"/>  
              </parameter>  
              <parameter name="p10" nullable="false">  
                <clob length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p11" nullable="false">  
                <decimal precision="9" scale="4"/>  
              </parameter>  
              <parameter name="p12" nullable="false">  
                <numeric precision="9" scale="4"/>  
              </parameter>  
            </parameters>  
          <resultSet>  
            <columns>  
              <column name="p00" ordinal="0"/>  
              <column name="p01" ordinal="1"/>  
              <column name="p02" ordinal="2"/>  
              <column name="p03" ordinal="3"/>  
              <column name="p04" ordinal="4"/>  
              <column name="p05" ordinal="5"/>  
              <column name="p06" ordinal="6"/>  
              <column name="p07" ordinal="7"/>  
              <column name="p08" ordinal="8"/>  
              <column name="p09" ordinal="9"/>  
              <column name="p10" ordinal="10"/>  
              <column name="p11" ordinal="11"/>  
            </columns>  
          </resultSet>  
        </section>  
        <section number="3" alias="">  
          <statement number="3" sqlStatement="DECLARE CURDEPTLOC CURSOR FOR SELECT LOCATION FROM VHDEPT WHERE DEPTNO = :H AND LOCATION = CURRENT SERVER"/>  
            <parameters>  
              <parameter name="p00" nullable="false">  
                <smallInt length="2"/>  
              </parameter>  
              <parameter name="p01" nullable="false">  
                <int  length="4" />  
              </parameter>  
              <parameter name="p02" nullable="false">  
                <bigInt  length="8" />  
              </parameter>  
              <parameter name="p13" nullable="false">  
                <single length="4"/>  
              </parameter>  
              <parameter name="p14" nullable="false">  
                <double length="8"/>  
              </parameter>  
              <parameter name="p15" nullable="false">  
                <float length="8"/>  
              </parameter>  
              <parameter name="p16" nullable="false">  
                <real length="4" />  
              </parameter>  
              <parameter name="p17" nullable="false">  
                <date length="10"/>  
              </parameter>  
              <parameter name="p18" nullable="false">  
                <time length="8"/>  
              </parameter>  
              <parameter name="p19" nullable="false">  
                <timestamp length="26"/>  
              </parameter>  
              <parameter name="p03" nullable="false">  
                <char length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p04" nullable="false">  
                <charForBit length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p05" nullable="false">  
                <varChar length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p06" nullable="false">  
                <varCharForBit length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p07" nullable="false">  
                <graphic length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p08" nullable="false">  
                <varGraphic length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p09" nullable="false">  
                <blob length="1" ccsid="65535"/>  
              </parameter>  
              <parameter name="p10" nullable="false">  
                <clob length="1" ccsid="1208"/>  
              </parameter>  
              <parameter name="p11" nullable="false">  
                <decimal precision="9" scale="4"/>  
              </parameter>  
              <parameter name="p12" nullable="false">  
                <numeric precision="9" scale="4"/>  
              </parameter>  
            </parameters>  
          <resultSet>  
            <columns>  
              <column name="p00" ordinal="0"/>  
              <column name="p01" ordinal="1"/>  
              <column name="p02" ordinal="2"/>  
              <column name="p03" ordinal="3"/>  
              <column name="p04" ordinal="4"/>  
              <column name="p05" ordinal="5"/>  
              <column name="p06" ordinal="6"/>  
              <column name="p07" ordinal="7"/>  
              <column name="p08" ordinal="8"/>  
              <column name="p09" ordinal="9"/>  
              <column name="p10" ordinal="10"/>  
              <column name="p11" ordinal="11"/>  
            </columns>  
          </resultSet>  
        </section>  
      </sections>  
    </package>  
  </packages>  
  
</hostIntegration.staticSql>  

Options 元素

Options 元素包含一组可选属性,这些属性用于在执行 DRDA 命令 BGNBND(开始将包绑定到 RDB)时定义 BNDOPT(绑定选项)的值。

绑定包创建控制

bindAllowErrors 属性通知 DRDA 服务器在包绑定期间是否允许错误。 此可选属性接受字符串值。

如果值为“是”,则指示 DRDA 服务器允许错误并继续绑定包。

如果值为“否”,则指示 DRDA 服务器不允许任何错误。

如果值为“验证”,则指示 DRDA 服务器仅验证绑定请求。

默认值为“否”。

包授权选项

bindAuthorizationKeep 属性通知 DRDA 服务器在替换包时是保留还是撤销包授权。 此可选属性接受布尔值。 默认值为 true。

绑定存在性检查

bindCheck 属性通知 DRDA 服务器在检查是否存在包语句中引用的数据库对象和颁发机构时是否返回错误。 此可选属性接受布尔值。 默认值为 false。

包替换选项

bindReplace 属性指示 DRDA 服务器绑定是否应替换现有包。 此可选属性接受布尔值。 默认值为 true。

已替换包版本名称

bindReplaceVersion 属性定义 DRDA 服务器应替换的包的包版本名称。 此可选属性接受字符串值。 此元素没有默认值。

列的包默认 SBCS CCSID

packageCcsidSbc 通知 DRDA 服务器要在执行 SQL CREATE 或 ALTER table 语句时使用的单字节字符的编码字符集标识符。 此可选属性接受整数值。 默认值为 1208。

列的包默认 DBCS CCSID

packageCcsidDbc 通知 DRDA 服务器要在执行 SQL CREATE 或 ALTER table 语句时使用的双字节字符的编码字符集标识符。 此可选属性接受整数值。 默认值为 1200。

列的包默认 MBCS CCSID

packageCcsidMbc 通知 DRDA 服务器要在执行 SQL CREATE 或 ALTER table 语句时使用的混合字节字符的编码字符集标识符。 此可选属性接受整数值。 默认值为 1208。

包默认字符子类型

packageCharacterSubtype 属性通知 DRDA 服务器要在执行 SQL CREATE 或 ALTER table 语句时使用的字符子类型。 此可选属性接受字符串值。 默认值为 Default。

说明
bit CHAR FOR BIT DATA
默认 系统默认
MBCS 混合字节字符集
SBCS 单字节字符集

小数精度

packageDecimalPrecision 属性通知 DRDA 服务器默认小数精度。 此可选属性接受整数值(15、16、31 或 63)。 默认值为 15。

注意

连接到 IBM DB2 for IBM i 时,不应指定此属性。

包授权规则

packageExecuteAuthorization 属性通知 DRDA 服务器要在执行动态 SQL 语句时使用的授权标识符。 此可选元素属性接受字符串值。 默认值为“Requester”。

说明
请求者 指示 DRDA 服务器使用 DRDA 请求者授权
“所有者” 指示 DRDA 服务器使用包所有者授权
InvokerRevertToRequester 指示 DRDA 服务器使用函数或存储过程的调用方授权,否则使用 DRDA 请求者授权
InvokerRevertToOwner 指示 DRDA 服务器使用函数或存储过程的调用方授权,否则使用包所有者授权
DefinerRevertToRequester 指示 DRDA 服务器使用函数或存储过程的创建者授权,否则使用 DRDA 请求者授权
DefinerRevertToOwner 指示 DRDA 服务器使用函数或存储过程的创建者授权,否则使用包所有者授权

Bind Explain 选项

bindExplain 属性通知 DRDA 服务器是否生成可解释数据库对象的说明性信息。 此可选属性接受字符串值。

如果值为“ExplainNone”,则指示 DRDA 服务器不产生说明性信息。

如果值为“ExplainAll”,则指示 DRDA 服务器解释所有语句。

如果值为“ExplainStatic”,则指示 DRDA 服务器仅解释静态 SQL 语句。

默认值为“ExplainNone”。

注意

连接到 IBM DB2 for IBM i 和 DB2 for LUW 时,应仅指定 一个 ExplainNone 值。

包隔离级别

packageIsolationLevel 属性指示 DRDA 服务器将包与请求的 DRDA PKGISOLVL(包隔离级别)绑定在一起。 此必需属性接受字符串值。 默认值为“ReadCommitted”。

说明
ReadCommitted ANSI READ COMMITTED

DRDA ISOLVLCS(隔离级别游标稳定性)

IBM DB2 CURSOR STABILITY (CS)

IBM DB2 for IBM i COMMIT (*CS)

Microsoft .NET Framework ReadCommitted
可序列化 ANSI SERIALIZABLE

DRDA ISOLVLRR(隔离级别可重复读取)

IBM DB2 REPEATABLE READ (RR)

IBM DB2 for IBM i COMMIT (*RR)

Microsoft .NET Framework Serializable
RepeatableRead ANSI REPEATABLE READ

DRDA ISOLVLALL(隔离级别全部)

IBM DB2 READ STABILITY (RS)

IBM DB2 for IBM i COMMIT (*RS)

Microsoft .NET Framework RepeatableRead
ReadUncommitted ANSI READ UNCOMMITTED

DRDA ISOLVLCHG(隔离级别更改)

IBM DB2 UNCOMMITTED READ (UR)

IBM DB2 for IBM i COMMIT (*UR)

Microsoft .NET Framework ReadUncommitted
NoCommit DRDA ISOLVLNC(隔离级别无提交)

IBM DB2 for IBM i COMMIT (*NC)

包所有者标识符

packageOwnerIdentifier 属性指示 DRDA 服务器哪个授权标识符是包的所有者。 此可选属性接受字符串值。 此元素没有默认值。

语句日期格式

statementDateFormat 元素通知 DRDA 服务器要在 SQL 语句中使用的语句日期格式。 此可选元素接受字符串值。 默认值为 Default

格式 说明
Iso yyyy-mm-dd ISO 日期格式
Usa mm/dd/yyyy 美国日期格式
Eur dd.mm.yyyy 欧洲日期格式
Jis yyyy-mm-dd JIS 日期格式
默认 NA 默认日期格式
Local NA 本地日期格式
DmyBlank dd mm yy 带有空格分隔符的日月年
DmyComma dd,mm,yy 带有逗号分隔符的日月年
DmyHyphen dd-mm-yy 带有连字符分隔符的日月年
DmyPeriod dd.mm.yy 带有句点分隔符的日月年
DmySlash dd/mm/yy 带有斜杠分隔符的日月年
JulBlank yy ddd 带有空格分隔符的儒略历
JulComma yy,ddd 带有逗号分隔符的儒略历
JulHyphen yy-ddd 带有连字符分隔符的儒略历
JulPeriod yy.ddd 带有句点分隔符的儒略历
JulSlash yy/ddd 带有斜杠分隔符的儒略历
MdyBlank mm dd yy 带有空格分隔符的月日年
MdyComma mm,dd,yy 带有逗号分隔符的月日年
MdyHyphen mm-dd-yy 带有连字符分隔符的月日年
MdyPeriod mm.dd.yy 带有句点分隔符的月日年
MdySlash mm/dd/yy 带有斜杠分隔符的月日年
YmdBlank yy mm dd 带有空格分隔符的年月日
YmdComma yy,mm,dd 带有逗号分隔符的年月日
YmdHyphen yy-mm-dd 带有连字符分隔符的年月日
YmdPeriod yy.mm.dd 带有句点分隔符的年月日
YmdSlash yy/mm/dd 带有斜杠分隔符的年月日

语句十进制分隔符

statementDecimalDelimiter 属性通知 DRDA 服务器要在 SQL 语句中使用的语句十进制分隔符。 此可选属性接受字符串值。 默认值为“系统”。

说明
周期 指示句点
逗号 指示逗号
程序包 在重新绑定包时指示包默认值
System 指示系统默认值

默认 RDB 集合 ID

defaultRdbCollection 属性通知 DRDA 服务器用于完成未限定的数据库对象名称的默认集合标识符。 此可选属性接受字符串值。 无默认值。 IBM DB2 for z/OS 接受 128 字节字符串。 IBM DB2 for IBM i 接受 10 字节字符串。 IBM DB2 for LUW 接受 30 字节字符串。

释放数据库对象资源

releaseDatabaseResources 属性通知 DRDA 服务器何时释放数据库对象资源,例如与包执行关联的锁定。 此可选属性接受字符串值。 如果值为“Commit”,则指示 DRDA 服务器在处理事务提交时释放数据库对象资源。 如果值为“Deallocation”,则指示 DRDA 服务器在取消分配会话时释放数据库对象资源。 默认值为“Commit”。

IO 并行度

parallelProcessDegree 属性通知 DRDA 服务器对绑定语句使用何种 I/O 并行度处理。 此可选属性接受整数值(-1 到 32676)。 如果值为 1,则指示 DRDA 服务器不需要 IO 并行处理。 如果值为 -1,则指示 DRDA 服务器应用合适的 IO 并行度处理。 默认值为 1。

保留已准备好的语句

keepPreparedStatement 属性指示 DRDA 服务器保留已准备好的动态 SQL 语句直到将其释放。 此可选属性接受字符串值。 默认值为“None”。

说明
None 指示在提交和回滚期间释放语句
提交 指示在提交期间保留语句,但在回滚期间释放
回退 指示在提交期间释放语句,但在回滚期间保留
全部 指示在提交和回滚期间保留语句

查询块协议控制

statementQueryProtocol 属性指示 DRDA 服务器要在返回查询结果时使用的查询块协议类型。 此可选属性接受字符串值。 默认值为“FixedRow”。

说明
FixedRow 指示固定行查询协议
LimitedBlock 指示固定块查询协议
ForceFixedRow 指示强制固定行查询协议

语句字符串分隔符

statementStringDelimiter 属性通知 DRDA 服务器要在 SQL 语句中使用的语句字符串分隔符。 此可选属性接受字符串值。 默认值为“系统”。

说明
撇号 指示撇号
DoubleQuote 指示双引号
程序包 在重新绑定包时指示包默认值
System 指示系统默认值

语句时间格式

statementTimeFormat 属性通知 DRDA 服务器要在 SQL 语句中使用的语句时间格式。 此可选属性接受字符串值。 默认值为“Iso”。

格式 说明
Iso hh.mm.ss ISO 时间格式
Usa hh:mm:ss AM 美国时间格式 AM |下午
Eur hh.mm.ss 欧洲时间格式
Jis hh:mm:ss JIS 时间格式
默认 NA 默认时间格式
Local NA 本地时间格式
HmsBlank hh mm ss 带有空格分隔符的时分秒
HmsColon hh:mm:ss 带有冒号分隔符的时分秒
HmsComma hh,mm,ss 带有逗号分隔符的时分秒
HmsPeriod hh.mm.ss 带有句点分隔符的时分秒

Packages 元素

packages 元素包含一个或多个 package 元素,这些元素用于在执行 DRDA 命令 BGNBND(开始将包绑定到 RDB)时定义值。

Package 元素

package 元素包含一组属性和 sections 元素。

集合标识符

collectionIdentifier 属性对应于 DRDA RDBCOLID(RDB 集合标识符)并指示 DRDA 服务器将包绑定到哪个集合。 此可选元素接受字符串值。 无默认值。 IBM DB2 for z/OS 接受 128 字节字符串。 IBM DB2 for IBM i 接受 10 字节字符串。 IBM DB2 for LUW 接受 30 字节字符串。

注意

DRDA 使用由多个部分组成的 PKGNAM(RDB 包名称)定义完全限定的静态 SQL 包。

  • RDBNAM(关系数据库名称)

  • RDBCOLID(RDB 集合标识符)

  • PKGID(RDB 包标识符)

RDBNAME.RDBCOLID.PKGID.PKGCNSTKN.PKGSN  

前面的示例显示了带有一致性令牌的完全限定的包名称。

包标识符

packageIdentifier 属性对应于 DRDA PKGID(RDB 包标识符)并通知 DRDA 服务器什么是包标识符。 此必需元素接受字符串值。 无默认值。 IBM DB2 接受 128 字节字符串。

一致性令牌

consistencyToken 属性对应于 DRDA PKGCNSTKN(RDB 包一致性令牌)并通知 DRDA 服务器什么是包一致性令牌。 此可选元素接受字符串值。 无默认值。 IBM DB2 支持 8 字节字符串。

注意

如果多个包的 PKGNAM 的值相同,则按 VRSNAM(版本名称)或 PKGCNSTKN(包名称一致性令牌)对这些包进行区分。

PKGCNSTKN(RDB 包一致性令牌)

VRSNAM(版本名称)

版本名称

versionName 属性对应于 DRDA VRSNAM(版本名称)并通知 DRDA 服务器包版本名称是什么。 此可选元素接受字符串值。 默认值为 null。 IBM DB2 支持 254 字节字符串。

包标题

Title 属性对应于 DRDA TITLE(标题)并指示 DRDA 服务器将包与描述性注释绑定在一起。 此可选元素接受字符串值。 无默认值。 DRDA 支持 254 字节字符串。

Sections 元素

sections 元素包含一个或多个 section 元素,这些元素用于在执行 DRDA 命令 BGNBND(开始将包绑定到 RDB)时定义值。

Section 元素

section 元素包含一组属性、一个必需的语句元素和一个可选的 resultSet 元素。

部分编号

packageSectionNumber 属性对应于 DRDA PKGSN(RDB 包部分编号)并指示 DRDA 服务器将部分绑定为此编号。 此可选属性接受整数值,并且在 Package 元素中必须是唯一的。 无默认值。

部分别名

packageSectionAlias 属性指示 Microsoft DRDA 客户端基于别名查找包部分。 此可选元素接受 8 字节字符串值。 无默认值。

注意

请参阅 Microsoft.HostIntegration.MsDb2Client.MsDb2Connection SetCustomPackageData 的程序员参考。

Statement 元素

Statement 元素包含一组属性和一个可选的 parameters 元素。

语句编号

sqlStatementNumber 属性对应于 DRDA SQLSTTNBR(SQL 语句编号)并指示 DRDA 服务器将语句绑定为此编号,这是对嵌入在源应用程序中的语句的引用。 此可选属性接受整数值,并且在 Package 元素中必须是唯一的。 无默认值。

SQL 语句假设

sqlStatementAssumptions 属性对应于 DRDA BNDSTTASM(绑定 SQL 语句假设)并指示 DRDA 服务器将语句与这些假设绑定在一起。 此可选属性接受布尔值。 如果值为“是”,则表示在程序预编译准备过程中,源服务器已成功为语句分类。 如果值为“否”,则表示源服务器对无法分类的语句做出假设。 默认值为“是”。

SQL 语句命令文本

sqlStatement 属性对应于 DRDA SQLSTT(SQL 语句)并指示 DRDA 服务器将语句与此 SQL 语句命令文本绑定在一起。 此必需元素接受字符串值。 无默认值。 DB2 接受 2,097,152 字节字符串。

Parameters 元素

parameters 元素包含一个或多个 parameter 元素。

Parameter 元素

parameter 元素包含一组属性,这些属性对应于 DRDA SQLSTTVRB(SQL 语句变量说明)和 type 元素。

注意

必须按照与 SQL 语句中的变量相同的顺序定义 parameter 元素。

参数名称

name 属性指示 DRDA 服务器参数的名称是什么。 此必需属性接受字符串值。 无默认值。 IBM DB2 支持 128 字节字符串。

参数为 Null 性

nullable 属性指示 DRDA 服务器参数值是否可以为 Null。 此必需属性接受布尔值。 默认值为 true。

参数类型

type 元素指示 DRDA 服务器参数的类型是什么。 此必需属性接受字符串值。 无默认值。

参数长度

length 属性指示 DRDA 服务器参数的长度是什么。 此必需属性接受整数值。 无默认值。

参数精度

precision 属性指示 DRDA 服务器参数的精度是什么。 此必需属性接受整数值。 无默认值。

参数小数位数

scale 属性指示 DRDA 服务器参数的小数位数是什么。 此必需属性接受整数值。 无默认值。

参数编码字符集标识符

ccsid 属性指示 DRDA 服务器参数的编码字符集标识符是什么。 此必需属性接受整数值。 无默认值。

ResultSet 元素

可选的 resultSet 元素包含 columns 元素,该元素通知 DRDA 客户端结果集中列的预期顺序和数据类型是什么。

注意

MsDb2Client 提供程序使用此信息向使用者程序返回结果集,其中包括列名和数据类型的正确元数据。 (可选)配置 MsDb2Client 连接字符串参数“Use Early Metadata=False”以指示 MsDb2Client 忽略静态 SQL for DB2 XML 文件的“结果集”部分中定义的设计时元数据,然后使用 DRDA 服务器返回的后期元数据。

Columns 元素

columns 元素包含一个或多个 column 元素。

Column 元素

column 元素包含一组属性。

列序号

ordinal 属性标识列在结果集内的位置。 此必需属性接受整数值。 无默认值。

列名

name 属性指示 DRDA 服务器列的名称是什么。 此必需属性接受字符串值。 无默认值。 IBM DB2 支持 128 字节字符串。

列的为空性

nullable 属性指示 DRDA 服务器列值是否可以为 Null。 此必需属性接受布尔值。 默认值为 true。

列类型

type 元素指示 DRDA 服务器列的类型是什么。 此必需属性接受字符串值。 无默认值。

列长度

Length 属性指示 DRDA 服务器列的长度是什么。 此必需属性接受整数值。 无默认值。

列的精度

Precision 属性指示 DRDA 服务器列的精度是什么。 此必需属性接受整数值。 无默认值。

列的小数位数

Scale 属性指示 DRDA 服务器列的小数位数是什么。 此必需属性接受整数值。 无默认值。

列编码字符集标识符

CCSID 属性指示 DRDA 服务器列的编码字符集标识符是什么。 此必需属性接受整数值。 无默认值。

引用表

数据类型

下表列出了用于在静态 SQL for DB2 XML 文件格式 V85 中定义参数和列的数据类型和长度。

类型 Length 说明
bigint 8 64 位带符号整数。
char 字符串。
charForBit 二进制字符串。
date 10 日期和时间数据,值范围从 1753 年 1 月 1 日到 9999 年 12 月 31 日,精度为 3.33 毫秒。
Decimal 简单类型,表示从 1.0 x 10 -28 到大约 7.9 x 10 28 且有效位数为 28 到 29 位的值。
Double 8 浮点数在 -1.79E +308 到 1.79E +308 的范围内。
图形 双字节字符串。
int 4 32 位有符号整数,其值介于 -2147483648 和 2147483647 之间。
numeric 精度和小数位数固定的精确数值。
real 4 带有二进制精度 24 的已签名的近似数值(零或绝对值为 10[–38] 到 10[38])。
smallint 2 16 位有符号整数,其值介于 -32768 和 32767 之间。
time 8. 日期和时间数据,值范围从 1753 年 1 月 1 日到 9999 年 12 月 31 日,精度为 3.33 毫秒。
timestamp 26 采用 YYYY-MM-DD-hh.mm.ss.tttttt 格式的数据和时间数据。
varChar 变长字符串。
varCharForBit 变长二进制字符串。
varGraphic 双字节字符串。

编码字符集标识符

下表列出了用于在静态 SQL for DB2 XML 文件格式 V85 中定义选项、参数和列的数据类型和长度。

类型 CCSID NLS 说明
SBCS ANSI 1250 1250 中欧
SBCS ANSI 1251 1251 西里尔语
SBCS ANSI 1252 1252 拉丁语 I
SBCS ANSI 1253 1253 希腊语
SBCS ANSI 1254 1254 土耳其语
SBCS ANSI 1255 1255 希伯来语
SBCS ANSI 1256 1256 阿拉伯语
SBCS ANSI 1257 1257 波罗的语
SBCS ANSI/OEM 874 874 泰语
SBCS ANSI/OEM 932 932 日语 Shift-JIS
SBCS ANSI/OEM 1258 1258 越南
SBCS EBCDIC 37 1140 美国/加拿大(欧洲)
SBCS EBCDIC 37 37 美国/加拿大
SBCS EBCDIC 273 1141 德国(欧洲)
SBCS EBCDIC 273 20273 德国
SBCS EBCDIC 277 1142 丹麦/挪威(欧洲)
SBCS EBCDIC 277 20277 丹麦/挪威
SBCS EBCDIC 278 1143 芬兰/瑞典(欧洲)
SBCS EBCDIC 278 20278 芬兰/瑞典
SBCS EBCDIC 280 1144 意大利(欧洲)
SBCS EBCDIC 280 20280 意大利
SBCS EBCDIC 284 1145 拉丁美洲/西班牙(欧洲)
SBCS EBCDIC 284 20284 拉丁美洲/西班牙
SBCS EBCDIC 285 1146 英国(欧洲)
SBCS EBCDIC 285 20285 英国
SBCS EBCDIC 290 NA 日文片假名(扩展)
SBCS EBCDIC 290 290 日文片假名(扩展)
SBCS EBCDIC 297 1147 法国(欧洲)
SBCS EBCDIC 297 20297 法国
SBCS EBCDIC 420 20420 阿拉伯语
SBCS EBCDIC 423 20423 希腊语
SBCS EBCDIC 424 20424 希伯来语
SBCS EBCDIC 500 1148 国际(欧洲)
SBCS EBCDIC 500 500 国际
SBCS EBCDIC 833 NA 朝鲜语(扩展)
SBCS EBCDIC 836 NA 简体中文(扩展)
SBCS EBCDIC 838 20838 泰语
SBCS EBCDIC 870 870 多语言/ROECE(拉丁语-2)
SBCS EBCDIC 871 1149 冰岛语(欧洲)
SBCS EBCDIC 871 20871 冰岛语
SBCS EBCDIC 875 875 希腊语(现代)
SBCS EBCDIC 880 20880 西里尔语 (俄语)
SBCS EBCDIC 905 20905 土耳其语(拉丁语-3)
SBCS EBCDIC 924 20924 拉丁语-1/开放系统(欧洲)
SBCS EBCDIC 930 930 日文片假名/汉字(扩展片假名)
SBCS EBCDIC 931 931 日语
SBCS EBCDIC 933 933 韩国(扩展)
SBCS EBCDIC 935 935 简体中文(扩展)
SBCS EBCDIC 937 937 繁体中文(扩展)
SBCS EBCDIC 939 939 日式英语/汉字(扩展)
SBCS EBCDIC 1025 21025 西里尔文(塞尔维亚语、保加利亚语)
SBCS EBCDIC 1026 1026 土耳其语(拉丁语-5)
SBCS EBCDIC 1027 NA 日式英语(扩展)
SBCS EBCDIC 1027 NA 日式英语(扩展)
SBCS EBCDIC 1047 1047 拉丁语-1/开放系统
SBCS EBCDIC 5026 NA 日文片假名/汉字(扩展片假名)
SBCS EBCDIC 5035 NA 日式英语/汉字(扩展)
SBCS EBCDIC 28709 NA 繁体中文(扩展)
SBCS ISO 813 28597 8859-7 希腊语
SBCS ISO 819 28591 8859-1 拉丁语-1
SBCS ISO 912 28592 8859-2 中欧
SBCS ISO 913 28593 8859-3 拉丁语 3
SBCS ISO 914 28594 8859-4 波罗的语
SBCS ISO 915 28595 8859-5 西里尔语
SBCS ISO 916 28598 8859-8 希伯来语(直观排序)
SBCS ISO 920 28599 8859-9 希伯来语(逻辑排序)
SBCS ISO 923 20865 8859-15 拉丁语 9(欧洲)
SBCS ISO 1089 28596 8859-6 阿拉伯语
SBCS ISO 6937 20269 6937 无空格重音符
SBCS OEM 437 437 United States
SBCS OEM 737 737 希腊语 437G
SBCS OEM 775 775 波罗的语
SBCS OEM 850 850 多语言拉丁语 I
SBCS OEM 852 852 多语言拉丁语 II
SBCS OEM 855 855 西里尔语
SBCS OEM 857 857 土耳其语
SBCS OEM 860 860 葡萄牙语
SBCS OEM 861 861 冰岛语
SBCS OEM 862 862 希伯来语
SBCS OEM 863 863 加拿大法语
SBCS OEM 864 864 阿拉伯语
SBCS OEM 865 865 北欧
SBCS OEM 866 866 西里尔语 II
SBCS OEM 869 869 现代希腊语
MBCS EBCDIC 930 NA 日文片假名/汉字(扩展)
MBCS EBCDIC 931 NA 日语
MBCS EBCDIC 933 NA 韩国(扩展)
MBCS EBCDIC 935 NA 简体中文(扩展)
MBCS EBCDIC 937 NA 繁体中文(扩展)
MBCS EBCDIC 939 NA 日式英语/汉字(扩展)
MBCS EBCDIC 5026 NA 日文片假名/汉字(扩展)
MBCS EBCDIC 5035 NA 日式英语/汉字(扩展)
DBCS ANSI/OEM 936 936 简体中文 GBK
DBCS ANSI/OEM 949 949 韩语
DBCS ANSI/OEM 950 950 繁体中文 Big5
DBCS EBCDIC 300 NA IBM EBCDIC - 日本
DBCS EBCDIC 834 NA IBM EBCDIC - 韩国
DBCS EBCDIC 835 NA IBM EBCDIC - 繁体中文
DBCS EBCDIC 837 NA IBM EBCDIC - 简体中文
DBCS EBCDIC 4396 NA IBM EBCDIC - 日本

注意

用于 DB2 的 Microsoft ADO.NET 数据提供程序支持一组编码字符集标识符。 适用于 z/OS 和 IBM i 的 IBM DB2 数据库服务器通常使用 EBCDIC。 有关详细信息,请参阅