Netezza存储过程中使用字符串的多行语句

时间:2019-08-05 15:54:18

标签: sql netezza

我正在创建存储过程,因此可以在select语句中使用参数。使用REFTABLE,我想返回REFTABLE作为对STORED PROCEDURE的响应。

以这个为例:

 EXECUTE IMMEDIATE 'INSERT INTO ' || REFTABLENAME ||' SELECT * FROM STUD_REC';

我的问题是在语句中使用单引号和双引号时。该SQL语句不是我的。

语句如下:

SELECT 'THIS IS MY TEXT' as "TEXT LINE"

我要寻找的最终结果是这样的:

 EXECUTE IMMEDIATE 'INSERT INTO ' || REFTABLENAME ||' SELECT 'THIS IS MY TEXT' as "TEXT LINE"';

自然,我知道当主字符串用单引号引起来时,我不能在其中使用单引号。我试图避免转义引号,因为这会混淆选择语句的创建者。

在python中,三引号(''')代表一个块字符串。块字符串允许在块中使用单引号和双引号。我可以使用Netezza中的一个吗?

谢谢

更新#1。尽管这是一条小的SQL语句,但实际的语句却很大,有多行。这对我的构造有什么影响?

1 个答案:

答案 0 :(得分:0)

在SQL中,您需要对单引号加倍以使其出现在字符串中:

EXECUTE IMMEDIATE 'INSERT INTO ' || REFTABLENAME || ' SELECT ''THIS IS MY TEXT'' as "TEXT LINE"';