【发布时间】:2014-07-23 23:07:40
【问题描述】:
我在 Oracle 中有一个过程,它返回所有回答 SQL 语句的行。 该程序得到4个参数,其中3个使用在-所说的SQL语句中。往下看(代码)。 只有参数:in_table_name 会报错,如何通过过程将table_name 移动到SQL 语句中?(我试过用“&”,但是不行)
create or replace Procedure return_rows_EMPLOYEE (in_order in number,
in_sorting in VARCHAR2, in_job in VARCHAR2, in_table_name in VARCHAR2, out_cursor OUT SYS_REFCURSOR) As
Begin
if in_order = 1 THEN
OPEN out_cursor for
select * from &in_table_name
WHERE EMPL_JOB_TITLE = in_job
ORDER BY in_sorting ASC;
else
OPEN out_cursor for
select * from &in_table_name
WHERE EMPL_JOB_TITLE = in_job
ORDER BY in_sorting DESC;
END if;
End;
【问题讨论】:
-
使用动态查询。你不能使用表名作为参数。
标签: sql oracle stored-procedures procedure