Oracle9i Supplied PL/SQL Packages and Types Reference Release 1 (9.0.1) Part Number A89852-02 |
|
UTL_URL , 2 of 3
This function returns a URL with illegal characters (and optionally reserved characters) escaped using the %2-digit-hex-code
format.
FUNCTION escape ( url IN VARCHAR2, escape_reserved_chars IN BOOLEAN DEFAULT FALSE, url_charset IN VARCHAR2 DEFAULT utl_http.body_charset) RETURN VARCHAR2;
Table 84-3 shows the parameters for the ESCAPE
function.
Use this function to escape URLs that contain illegal characters as defined in the URL specification RFC 2396. The legal characters in URLs are:
A
through Z, a
through z,
and 0
through 9
-
), underscore (_
), period (.
), exclamation point (!
), tilde (~
), asterisk (*
), accent ('
), left parenthesis ( (
), right parenthesis ( )
)
The reserved characters consist of:
;
) slash (/
), question mark (?
), colon (:
), at sign (@
), ampersand (&
), equals sign (=
), plus sign (+
), dollar sign ($
), and comma (,
)
Many of the reserved characters are used as delimiters in the URL. You should escape characters beyond those listed here by using escape_url. Also, to use the reserved characters in the name-value pairs of the query string of a URL, those characters must be escaped separately. An escape_url cannot recognize the need to escape those characters because once inside a URL, those characters become indistinguishable from the actual delimiters. For example, to pass a name-value pair $logon=scott/tiger
into the query string of a URL, escape the $
and /
separately as %24logon=scott%2Ftiger
and use it in the URL.
Normally, you will escape the entire URL, which contains the reserved characters (delimiters) that should not be escaped. For example:
utl_url.escape('http://www.acme.com/a url with space.html')
Returns:
http://foo.com/a%20url%20with%20space.html
In other situations, you may want to send a query string with a value that contains reserved characters. In that case, escape only the value fully (with escape_reserved_chars
set to TRUE
) and then concatenate it with the rest of the URL. For example:
url := 'http://www.acme.com/search?check=' || utl_url.escape
('Is the use of the "$" sign okay?', TRUE);
This expression escapes the question mark (?
), dollar sign ($
), and space characters in 'Is the use of the "$" sign okay?'
but not the ?
after search
in the URL that denotes the use of a query string.
The Web server that you intend to fetch Web pages from may use a character set that is different from that of your database. In that case, specify the url_charset as the Web server character set so that the characters that need to be escaped are escaped in the target character set. For example, a user of an EBCDIC database who wants to access an ASCII Web server should escape the URL using US7ASCII
so that a space is escaped as %20
(hex code of a space in ASCII) instead of %40
(hex code of a space in EBCDIC).
This function does not validate a URL for the proper URL format.
|
Copyright © 1996-2001, Oracle Corporation. All Rights Reserved. |
|