假设使用Oracle的PL / SQL,则可以
REFCURSOR使用动态字符串打开一个,并在LOOP中调用它。
PROCEDURE run(p_boolean BOOLEAN)ISBEGIN DECLARE v_mystring VARCHAr(50); v_my_ref_cursor sys_refcursor; BEGIN IF p_boolean = TRUE THEN v_mystring := 'SELECT something...'; ELSE v_mystring := 'SELECT something else...'; END IF; OPEN v_my_ref_cursor FOR v_mystring; LOOP FETCH v_my_ref_cursor INTO your_variables/record EXIT WHEN v_my_ref_cursor%NOTFOUND; .. END LOOP; CLOSE v_my_ref_cursor; END;END;



