2014-09-26 156 views
0

我想知道是否有像plsql中的表和列的別名。 我想要做這樣的事情(僞):PL/SQL表和列別名

if (foo) 
then 
    alias bla_table = tablenameA 
    alias bla_column = coulmnnameA 
else 
    alias bla_table = tablenameB 
    alias bla_column = coulmnnameB 
end 

select bla_column from bla_table; 

回答

2

有一些方法來歸檔類似的效果;可能最簡單的方法是聲明一個遊標,並根據if路徑將其打開以進行不同的查詢。

例如,從Oracle Documentation採取:

CREATE PACKAGE emp_data AS 
    TYPE EmpCurTyp IS REF CURSOR RETURN emp%ROWTYPE; 
    PROCEDURE open_emp_cv (emp_cv IN OUT EmpCurTyp, choice IN INT); 
END emp_data; 

CREATE PACKAGE BODY emp_data AS 
    PROCEDURE open_emp_cv (emp_cv IN OUT EmpCurTyp, choice IN INT) IS 
    BEGIN 
     IF choice = 1 THEN 
     OPEN emp_cv FOR SELECT * FROM emp WHERE comm IS NOT NULL; 
     ELSIF choice = 2 THEN 
     OPEN emp_cv FOR SELECT * FROM emp WHERE sal > 2500; 
     ELSIF choice = 3 THEN 
     OPEN emp_cv FOR SELECT * FROM emp WHERE deptno = 20; 
     END IF; 
    END; 
END emp_data; 
+0

謝謝!這應該工作! – user30137 2014-09-26 10:07:58