Plsql 如何在executeimmediate语句中包含变量?

Plsql 如何在executeimmediate语句中包含变量?,plsql,oracle12c,Plsql,Oracle12c,我试图在execute immediate语句中选择一个变量,但是,我不确定语法 我试图运行的代码如下所示: DECLARE PREV_PAR VARCHAR2(1); VC_NUM VARCHAR2(2); BEGIN SELECT 'P' INTO PREV_PAR FROM DUAL; SELECT '01' INTO VC_NUM FROM DUAL; EXECUTE IMMEDIATE 'CREATE TABLE TEMP_TABLE AS (SELECT '||PREV_PAR||'

我试图在execute immediate语句中选择一个变量,但是,我不确定语法

我试图运行的代码如下所示:

DECLARE
PREV_PAR VARCHAR2(1);
VC_NUM VARCHAR2(2);
BEGIN
SELECT 'P' INTO PREV_PAR FROM DUAL;
SELECT '01' INTO VC_NUM FROM DUAL;
EXECUTE IMMEDIATE 'CREATE TABLE TEMP_TABLE AS (SELECT '||PREV_PAR||' as prev_par,'||VC_NUM||'  as vc_code from dual)';
END;

我做错了什么?

您需要在每个varchar变量周围添加两个引号,如下所示

声明 上一个VARCHAR21; VC_NUM VARCHAR22; 开始 从双参数中选择“P”进入上一个参数; 从DUAL中选择'01'进入VC_NUM; 执行立即“创建表临时表作为选择”| | PREV| | | PAR |作为PREV| PAR,| | | VC| NUM | |作为双代码”; 终止 / 因为运行时的最终语句必须如下所示:

创建表TEMP_TABLE AS选择“P”作为prev_par,选择“01”作为vc_代码
谢谢你的帮助,不客气。