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。对允许进行多个选择的 SELECT 列表很有用。
attribute 在有多个部分的请求中,属性可指定标头字段名称,该名称返回多部分名称的标头值。
如果未指定任何属性,返回值将为百分比解码数据,并且字符集将被转换为数据库字符集。在此模式下支持 UTF 百分比编码数据。
属性也可以是下列模式之一:
'@BINARY' 返回 x-www-form-urlencoded 二进制数据值。此模式表示返回值为百分比解码数据且不是转换的字符集。此模式不支持 UTF-8 百分比编码,因为百分比编码数据只能解码为其等效的字节表示。
'@TRANSPORT' 返回原始 HTTP 传送格式的值(保留百分比编码)。
LONG VARCHAR。
此函数返回指定的 HTTP 变量的值。在 Web 服务内处理 HTTP 请求时,将使用该函数。
如果 var-name 不存在,则返回值为 NULL。
当 Web 服务请求为 POST 且变量数据作为多部分/形式数据进行发送时,HTTP 服务器会分别接收每个变量的 HTTP 标头。如果指定了 attribute 参数,HTTP_VARIABLE 函数会从 POST 请求返回特定变量的关联多部分/形式数据标头值。对于表示文件的变量,Content-Disposition、Content-Type 和 @BINARY 的属性将分别返回文件名、媒体类型和文件内容。
通常,所有输入数据都会经历客户端(例如,浏览器)字符集与数据库字符集之间的字符集转换。不过,如果为 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' );