2014-09-26 4 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

Смежные вопросы