2013-08-27 1 views
4

어떻게 Oracle에서 값을 디코딩 할 수 있습니까?URL의 테이블 디코드를

나는 오라클 DB 테이블에 저장된 URL 인코딩 된 문자열이있다. 나는 결과를 선택하는 동안 그것을 url_encode하고 싶다. 이것을 달성하는 빠른 방법?

답변

4

오라클은 두 가지 기능 escape()하고 인코딩하고 url의를 디코딩 할 수 unescape()를 포함 utl_url 패키지를 제공합니다. 인코딩 된 URL 문자열 http://www.%24-%26-%3C-%3E-%3F을 디코딩하기 위해, 예를 들어, 우리는 다음과 같은 작업을 수행 할 수

SQL> select utl_url.unescape('http://www.%24-%26-%3C-%3E-%3F') as res 
    2 from dual 
    3 ; 

결과 :

RES 
--------------------- 
http://www.$-&-<->-? 

참고. 당신이 escape() 기능을 사용해야 할 경우 함수의 두 번째 매개 변수는 부울 데이터 형이기 때문에, 당신은 직접 select 문에서 사용할 수있을 실 거예요. 래퍼 함수를 ​​작성해야합니다.

SQL> create or replace function url_encode(p_url in varchar2) 
    2 return varchar2 
    3 is 
    4 begin 
    5 return utl_url.escape(p_url, true); 
    6 end; 
    7/
Function created 

SQL> 
SQL> select Url_encode('http://www.$-&-<->-?') as res 
    2 from dual 
    3 ; 

결과 :

RES 
------------------------------------- 
http%3A%2F%2Fwww.%24-%26-%3C-%3E-%3F 
관련 문제