为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:
【CPU】:
【问题描述】*:存储过程中定义了变量,然后在建表语句中如何正确引用变量?类似的语句在Oracle中没有问题。
CREATE OR REPLACE PROCEDURE P1 IS
D_DATE VARCHAR2(8) := TO_CHAR(SYSDATE, 'YYYYMMDD');
HH VARCHAR2(8) := TO_CHAR(SYSDATE, 'HH24:MI');
.
.
.
BEGIN
EXCEUTE IMMEDIA 'CREATE TABLE T1 AS
SELECT
D_DATE,
HH,
.
.
.
FROM T2 WHERE ...';
执行该存储过程时提示
[执行语句1]:
call P1;
执行失败(语句1)
-2111: 无效的列名[D_DATE]
-2111: P1 line xxx
1条语句执行失败
EXCEUTE IMMEDIA 'CREATE TABLE T1 AS
SELECT
'''||D_DATE||''',
'''||HH||''',
.
.
.
FROM T2 WHERE ...';
你这个时间作为常量传递到sql里面去,是需要用字符串拼接的,并且还需要保持自身的字符串特性,所以需要3个单引号处理