我有参数 :prmtr ,我想要基于参数输入使用select语句。
我尝试了这个:
if :prmtr= 'A' then select * from tblA; else select * from tblB; end if;
但它不会工作。
还有其他方法可以做到这一点吗?
您可以使用CURSOR变量和PRINT命令尝试类似的操作。当作为脚本运行时,这在SQL * plus和SQL Developer或TOAD中都有效。
CURSOR
PRINT
VARIABLE prmtr VARCHAR2 EXEC :PRMTR := 'A' -- SET values of parameter VARIABLE x refcursor -- a cursor variable DECLARE BEGIN IF :PRMTR = 'A' THEN OPEN :x FOR SELECT * FROM employees; ELSE OPEN :x FOR SELECT * FROM departments; END IF; END; / PRINT x -- gives you the result of the query.