2013-11-02 4 views
0

열에서 쿼리 실행은 내가 원하는 무엇

queryname query 
Chips  select * from chips_table c join all_stores s on c.id=s.id where s.loc>213... 
...   ... 

내가 아는 : 내가 쿼리와 테이블이를, 내가

즉 해당 열에 값 중 하나를 실행하는 쿼리를 만들 필요가 나는 내가

012,381을 실행하는 절차 또는 스크립트 나보기 또는 이것 저것

getme(Chips) 

와 같은을 실행할 수있는 위의 쿼리의 결과를 원하는

+1

아니 PL/SQL 사람을하지만, 즉시 실행하거나 그런 일이 당신 것입니다 필요. –

답변

0

는 나중에 결과를 수행 할 작업에 따라 다릅니다 만, PL/SQL 처리를 위해 당신과 같이 사용할 수 있습니다 :

-- Function to open and return the cursor for the query based on query name 
CREATE OR REPLACE FUNCTION get_cursor (in_queryname IN VARCHAR2) 
RETURN SYS_REFCURSOR 
IS 
    c_query SYS_REFCURSOR; 
    v_query queries.query%type; 
BEGIN 
    SELECT query INTO v_query FROM queries WHERE queryname = in_queryname; 
    OPEN c_query FOR v_query; 
    RETURN c_query; 
END; 

-- Example of use 
DECLARE 
    c_query SYS_REFCURSOR; 
    some_variable INTEGER; 
    another_variable INTEGER; 
BEGIN 
    LOOP 
     FETCH c_query INTO some_variable, another_variable; 
     EXIT WHEN c_query%NOTFOUND; 
     -- Do someting! 
    END LOOP; 
    CLOSE c_query; 
EXCEPTION WHEN no_data_found THEN 
    NULL; -- Log the error! 
END; 
+0

불행히도 그것과 함께보기를 만들 필요가있다 : ( – user2586356

+0

보기를 만들려면 다음과 같이하면된다 : EXECUTE IMMEDIATE 'CREATE VIEW'|| queryname || 'AS'|| query; –

관련 문제