【问题标题】:multi-line statement in Netezza Stored Procedure using StringsNetezza 存储过程中使用字符串的多行语句
【发布时间】:2019-08-05 15:54:18
【问题描述】:

我正在创建一个存储过程,因此我可以在 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"';

当然,我知道当主字符串是单引号时,我不能在里面使用单引号。我试图避免转义引号,因为它会严重混淆 select 语句的发起者。

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

谢谢

更新 #1。虽然这是一条小的 SQL 语句,但实际的 SQL 语句很大,有多行。这对我的施工有何影响?

【问题讨论】:

    标签: sql netezza


    【解决方案1】:

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

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

    【讨论】:

    • 好的。只是因为我没有足够的挑战这个......对不起。如果原始查询是多行的怎么办。这有关系吗?
    • @arcee123 。 . .它不会改变您将单引号插入字符串的方式(通过将它们加倍)。
    猜你喜欢
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多