2013-11-02 84 views
0

我想要什麼:我有查詢表,我需要運行的一個值在該列運行從列的查詢

即查詢:

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

我知道我想從上面的查詢,我怎麼可以運行一個程序或腳本,查看或諸如此類的東西像

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; –