Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
返回一个 HTTP 变量的值。
HTTP_VARIABLE( var-name [ , instance [ , attribute ] ] )
var-name HTTP 变量的名称。
instance 当有多个变量具有相同的名称时,则为字段实例的实例编号;当要获取第一个变量时,则为 NULL。当选择列表允许进行多个选择时会有用处。
attribute 在有多个部分的请求中,属性可指定标头字段名称,该名称返回多部分名称的标头值。
如果未指定属性,返回值为百分比解码数据,并且字符集转换为数据库字符集编码。在此模式下支持 UTF 百分比编码数据。
属性也可以是下列模式之一:
'@BINARY' 返回 x-www-form-urlencoded 二进制数据值。此模式表示返回值为百分比解码数据并且不应为编码的字符集。在此模式下不支持 UTF 百分比编码数据。
'@TRANSPORT' 返回原始 HTTP 传送格式的值(保留百分比编码)。
LONG VARCHAR
此函数返回指定的 HTTP 变量的值。在 Web 服务内处理 HTTP 请求时,将使用该函数。
如果 var-name 不存在或指定 HTTP 标头字段属性的给定 var-name 的标头不存在,则返回值为 NULL。
当 Web 服务请求为 POST 且变量数据作为多部分/形式数据进行发送时,HTTP 服务器会分别接收每个变量的 HTTP 标头。如果指定了 attribute 参数,HTTP_VARIABLE 函数会从 POST 请求返回特定变量的关联多部分/形式数据标头值。
所有输入数据都会经历客户端(例如,浏览器)字符集与数据库字符集之间的字符集转换。不过,如果为 attribute 指定了 @BINARY,则返回变量输入值而不进行字符集转换。从客户端接收二进制数据(如图像数据)时,这可能会有用处。
如果指定的实例不存在或从 Web 服务之外调用函数,则此函数返回 NULL。
SQL/2008 服务商扩充。
在由 HTTP Web 服务所调用的存储过程内,使用以下示例会检索在示例 URL 中指示的 HTTP 变量的值。
-- http://sample.com/demo/ShowDetail?product_id=300&customer_id=101 BEGIN DECLARE v_customer_id LONG VARCHAR; DECLARE v_product_id LONG VARCHAR; SET v_customer_id = HTTP_VARIABLE( 'customer_id' ); SET v_product_id = HTTP_VARIABLE( 'product_id' ); CALL ShowSalesOrderDetail( v_customer_id, v_product_id ); END;
在由 HTTP Web 服务所调用的存储过程内,使用以下语句会请求图像变量的 Content-Disposition 和 Content-Type 标头:
SET v_name = HTTP_VARIABLE( 'image', NULL, 'Content-Disposition' ); SET v_type = HTTP_VARIABLE( 'image', NULL, 'Content-Type' );
在由 HTTP Web 服务所调用的存储过程内,使用以下语句会请求图像变量在其当前字符集中的值,即不进行字符集转换的值:
SET v_image = HTTP_VARIABLE( 'image', NULL, '@BINARY' );