所以我需要从只能在运行时识别的表中选择记录。这就是我所得到的,但我有点卡住了。任何帮助、建议或指出如何更容易/正确地做到这一点将不胜感激。
DECLARE
TABLE_NAME VARCHAR2(255);
QUERY_STR VARCHAR2(1000);
BEGIN
SELECT CASE WHEN UPPER(APP.MODULE_LONG_NAME) LIKE 'PLEDGE%' THEN 'PLEDGE_HDR' ELSE 'CONTACT_HDR' END
INTO TABLE_NAME
FROM REQST_HDR RH
INNER JOIN LKUP_REQST_TYPE LRT ON LRT.REQST_TYPE_ID = RH.REQST_TYPE_ID
INNER JOIN APP_MODULE_MSTR APP ON APP.MODULE_ID = LRT.MODULE_ID;
QUERY_STR := 'SELECT * FROM ' || TABLE_NAME || '--MORE FILTERING';
--SOMEHOW SHOW RESULTS OF QUERY_STR IN TABLE FORM.
END;
更新 - 由于我无法让任何解决方案发挥作用,我最终只使用 COALESCE,因为无论如何我只有两个表来作为查询的基础。感谢所有回答的人。