【发布时间】:2015-09-16 11:04:45
【问题描述】:
我有 ORACLE PROCEDURE,我需要根据传递的参数“a_ID”在选择查询中使用动态表名。 但我在创建程序时遇到错误。
错误(20,28):PL/SQL:ORA-00942:表或视图不存在
谁能帮忙解决这个问题? 下面是过程......
CREATE OR REPLACE
PROCEDURE IsTrue
(
AppID IN VARCHAR2,
a_ID IN VARCHAR2,
l_ID VARCHAR2,
return_value out CHAR
)
AS
v_sql VARCHAR(3000);
v_tablename VARCHAR(30);
BEGIN
SELECT decode(a_ID,'LS','LSAPP','MR','MRAPP','RV','RVAPP','APP') INTO v_tablename FROM dual;
SELECT CASE
WHEN EXISTS (SELECT 1
FROM v_tablename
WHERE APPID = AppID
AND LID <> l_ID)
THEN 'Y'
ELSE 'N'
END AS RECORD_EXISTS
FROM DUAL;
EXECUTE IMMEDIATE v_sql INTO return_value;
END;
【问题讨论】:
-
您不能使用变量,例如
v_tablename来代替 SQL 标识符。看看this helps.
标签: oracle