GET_MESSAGE存储过程
存储过程 GET_MESSAGE 根据 SQLCODE 返回短消息文本。
GET_MESSAGE存储过程仅支持SBCS CCSID。 也就是说,所有数据(输入和输出)必须以Unicode CCSID 367格式存在。
对片假名CCSID 290的支持有限。 xml_input文档中指定的任何用户特定信息(例如 SQLCODE 和 Message Tokens 的字符串输入)必须仅包含有效的EBCDIC CCSID 37字符,且这些EBCDIC字符必须在Unicode CCSID 367中存在。 同样,任何转换为Unicode CCSID 367并写入xml_output文档的请求信息,也必须仅包含有效的EBCDIC CCSID 37字符,且这些EBCDIC字符必须在Unicode CCSID 367中存在。
授权
要执行CALL语句,包含CALL语句的程序包或计划的所有者必须对GET_MESSAGE存储过程具有EXECUTE权限。
语法
下面的语法图显示了调用此存储过程的SQL CALL语句:
模式为 SYSPROC。
选项说明
- MAJOR_VERSION
- 一个整数类型的输入和输出参数,用于指示主要文档版本。 在输入时,此参数指示您为存储过程 (xml_input 、xml_output 和xml_message )中作为参数传递的XML文档所支持的主要文档版本。 存储过程处理指定版本的所有XML文档,如果版本无效,则返回错误(-20457)。
在输出方面,此参数指定了存储过程所支持的最高主要文档版本。 要确定所支持的文档版本,请将此输入参数和所有其他必需参数指定为 NULL。 目前,支持的最高且唯一的主要文档版本是1。
如果 xml_input参数中的 XML文档指定了 Document Type Major Version 键,则该键的值必须等于 major_version参数中提供的值,否则将引发错误(+20458)。
此参数与minor_version参数结合使用。 因此,您必须同时指定这两个参数。 例如,您必须将两者指定为 NULL 或非 NULL。
- MINOR_VERSION
- 一个整数类型的输入和输出参数,用于指示次要文档版本。 在输入时,此参数指定您为作为此存储过程参数传递的XML文档 (xml_input 、xml_output 和 xml_message )所支持的次要文档版本。 存储过程处理指定版本的所有XML文档,如果版本无效,则返回错误(-20457)。
在输出方面,此参数表示最高支持的主要版本所支持的次要文档的最高版本。 要确定所支持的文档版本,请将此输入参数和所有其他必需参数指定为 NULL。 目前,支持的最高且唯一的次要文档版本是0(零)。
如果 xml_input参数中的 XML文档指定了 Document Type Minor Version 键,则该键的值必须等于 minor_version参数中提供的值,否则将引发错误(+20458)。
此参数与major_version参数结合使用。 因此,您必须同时指定这两个参数。 例如,您必须将两者指定为 NULL 或非 NULL。
- requested_locale
- 一个VARCHAR(33)类型的输入参数,用于指定区域设置。 如果服务器支持指定的语言,则翻译后的内容将以 xml_output 和xml_message参数的形式返回。 否则,内容将以默认语言返回。 仅使用语言和可能来自区域设置的信息。 区域设置不用于设置数字格式或影响文档编码。 例如,关键名称不予翻译。 XML输出和XML消息文档中唯一翻译的部分是 Display Name、 Display Unit 和 Hint。 在适用的情况下,价值可能会全球化。 您应该始终将所请求的语言与XML输出文档中使用的语言进行比较(请参阅XML输出文档中的 Document Locale 条目)。
目前 ,requested_locale 支持的值为en_US和NULL。 如果指定空值,结果与指定en_US相同。
- xml_input
- 一个BLOB类型的输入参数( 2G ),用于指定 UTF-8 中数据服务器消息输入类型的XML输入文档,其中包含存储过程的输入值。对于这个存储过程,XML输入文档的一般结构如下:
<?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> <dict> <key>Document Type Name</key><string>Data Server Message Input</string> <key>Document Type Major Version</key><integer>1</integer> <key>Document Type Minor Version</key><integer>0</integer> <key>Document Locale</key><string>en_US</string> <key>Complete</key><false/> <key>Required Parameters</key> <dict> <key>SQLCODE</key> <dict> <key>Value</key><integer>sqlcode</integer> </dict> </dict> <key>Optional Parameters</key> <dict> <key>Message Tokens</key> <dict> <key>Value</key> <array> <string>token1 in SQLCA</string> <string>token2 in SQLCA</string> </array> </dict> </dict> </dict> </plist>关于在完整模式下无法运行的XML输入文档示例,请参见示例2。
完整模式 :有关在完整模式下运行存储过程时xml_output参数返回的XML输入文档示例,请参阅示例部分中的示例1。
- xml_filter
- UTF-8 中类型为BLOB( 4K )的输入参数,用于指定有效的XPath查询字符串。 当您想从XML输出文档中检索单个值时,请使用过滤器。 更多信息,请参阅用于过滤输出的XPath表达式。以下示例从XML输出文档中选择短消息文本的值:
如果键后没有指定的同级,则返回错误。/plist/dict/key[.='Short Message Text']/following-sibling::dict[1]/key [.='Value']/following-sibling::string[1] - xml_output
- 一个名为BLOB( 2G )的输出参数,用于返回一个完整的XML输出文档,其类型为 UTF-8 中的数据服务器消息输出。 如果指定了过滤器,则此参数将返回一个字符串值。 如果存储过程无法返回完整的输出文档(例如,如果发生导致 SQL 警告或错误的处理错误),则此参数设置为 NULL。
XML输出文档示例,请参见示例3。
- xml_message
- 一个名为BLOB( 64K )的输出参数,用于返回一个完整的XML输出文档,该文档的类型为 UTF-8 中的数据服务器消息,用于提供有关SQL警告条件的详细信息。 当调用该过程时出现 SQL 警告,且警告消息指出 XML 消息输出文档中返回了附加信息时,将返回此文档。 如果警告信息未指示返回其他信息,则此参数设置为 NULL。
XML消息文档示例,请参见示例4。
示例
- 示例 1
- 以下示例显示了一个XML输入文档,当存储过程在完整模式下运行时, xml_output参数会返回该文档。
<?xml version="1.0" encoding="UTF-8" ?> <plist version="1.0"> <dict> <key>Document Type Name</key> <string>Data Server Message Input</string> <key>Document Type Major Version</key> <integer>1</integer> <key>Document Type Minor Version</key> <integer>0</integer> <key>Document Locale</key> <string>en_US</string> <key>Required Parameters</key> <dict> <key>Display Name</key> <string>Required Parameters</string> <key>SQLCODE</key> <dict> <key>Display Name</key> <string>SQLCODE</string> <key>Value</key> <integer /> <key>Hint</key> <string /> </dict> <key>Hint</key> <string /> </dict> <key>Optional Parameters</key> <dict> <key>Display Name</key> <string>Optional Parameters</string> <key>Message Tokens</key> <dict> <key>Display Name</key> <string>Message Tokens</string> <key>Value</key> <array> <string /> </array> <key>Hint</key> <string /> </dict> <key>Hint</key> <string /> </dict> </dict> </plist> - 示例 2
- 以下示例显示了GET_MESSAGE存储过程的XML输入文档的完整示例。
<?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> <dict> <key>Document Type Name</key> <string>Data Server Message Input</string> <key>Document Type Major Version</key><integer>1</integer> <key>Document Type Minor Version</key><integer>0</integer> <key>Document Locale</key><string>en_US</string> <key>Required Parameters</key> <dict> <key>SQLCODE</key> <dict> <key>Value</key><integer>-104</integer> </dict> </dict> <key>Optional Parameters</key> <dict> <key>Message Tokens</key> <dict> <key>Value</key> <array> <string>X</string> <string>( . LIKE AS</string> </array> </dict> </dict> </dict> </plist> - 示例 3
- 以下示例显示了存储过程GET_MESSAGE的XML输出文档的完整示例。 SQLCODE的短消息文本将封装在字典条目中,该条目由 Display Name、 Value 和 Hint 组成。
<?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> <dict> <key>Document Type Name</key> <string>Data Server Message Output</string> <key>Document Type Major Version</key><integer>1</integer> <key>Document Type Minor Version</key><integer>0</integer> <key>Data Server Product Name</key><string>DSN</string> <key>Data Server Product Version</key><string>9.1.5</string> <key>Data Server Major Version</key><integer>9</integer> <key>Data Server Minor Version</key><integer>1</integer> <key>Data Server Platform</key><string>z/OS</string> <key>Document Locale</key><string>en_US</string> <key>Short Message Text</key> <dict> <key>Display Name</key><string>Short Message Text</string> <key>Hint</key><string /> </dict> </dict> </plist> - 示例 4
- 以下示例显示了存储过程GET_MESSAGE的XML消息文档示例。 与XML输出文档类似,SQL警告条件的详细信息将封装在一个字典条目中,该条目由 Display Name、 Value 和 Hint 组成。
<?xml version="1.0" encoding="UTF-8" ?> <plist version="1.0"> <dict> <key>Document Type Name</key><string>Data Server Message</string> <key>Document Type Major Version</key><integer>1</integer> <key>Document Type Minor Version</key><integer>0</integer> <key>Data Server Product Name</key><string>DSN</string> <key>Data Server Product Version</key><string>9.1.5</string> <key>Data Server Major Version</key><integer>9</integer> <key>Data Server Minor Version</key><integer>1</integer> <key>Data Server Platform</key><string>z/OS</string> <key>Document Locale</key><string>en_US</string> <key>Short Message Text</key> <dict> <key>Display Name</key><string>Short Message Text</string> <key>Value</key> <string>DSNA630I DSNADMGM A PARAMETER FORMAT OR CONTENT ERROR WAS FOUND. The value for key 'Document Type Minor Version' is '2'. It does not match the value '0', which was specified for parameter 2 of the stored procedure. Both values must be equal.</string> <key>Hint</key><string /> </dict> </dict> </plist> - 示例 5
- 本例展示了一个简单静态的Java™程序,该程序使用XML输入文档和XPath查询SQLCODE短消息文本,调用存储过程GET_MESSAGE。
