NZPLSQL:如何阻止反斜杠转义单引号

问题描述

第一次在这里发帖,如有格式问题请见谅。

我正在尝试编写一个 Netezza 存储过程以在文件名通过循环时动态更新。但是,当尝试将文件夹路径定义为字符串时,反斜杠 '\' 会转义终止字符串的单引号。

...

OUTPUT_FILEPATH = 'C:\Users\Test\'

...

ERROR [01000] NOTICE: plpgsql: XXX.TEST 附近第 1 行编译过程中出错

ERROR [HY000] 错误:未终止的字符串从第 1 行开始

如果我尝试使用双反斜杠来显示转义字符,则会出现两个反斜杠字符。

...

OUTPUT_FILEPATH = 'C:\Users\Test\\'

...

注意:在 C:\Users\Test\\ 处创建批处理 TEST-B 01

如果我试图重复单引号一次或两次,它要么无法编译,要么重复字符串未终止的相同错误。

...

OUTPUT_FILEPATH = 'C:\Users\Test\''

...

ERROR [42000] 语法错误或访问冲突

...

OUTPUT_FILEPATH = 'C:\Users\Test\'''

...

ERROR [01000] NOTICE: plpgsql: XXX.TEST 附近第 1 行编译过程中出错

ERROR [HY000] 错误:未终止的字符串从第 1 行开始

我们如何防止转义字符转义 NZPLSQL 中的终止单引号?

完整脚本转载如下以供参考:

...

CREATE OR REPLACE PROCEDURE XXX.TEST()
RETURNS INTEGER
LANGUAGE NZPLSQL AS
BEGIN PROC
    DECLARE
    FILE_HDR NVARCHAR;
    BATCH_ID NVARCHAR;
    OUTPUT_FILEPATH NVARCHAR;
    CNT INT;
BEGIN
CNT:=1;
FILE_HEADER:='TEST-B';

WHILE CNT < 10 LOOP
    BATCH_ID:= TO_CHAR(CNT,'FM09');
    OUTPUT_FILEPATH:= 'C:\Users\Test\'||FILE_HEADER||BATCH_ID||'.csv';
    RAISE NOTICE 'Creating Batch % % at %',FILE_HEADER,BATCH_ID,OUTPUT_FILEPATH;
END LOOP;

END;
END_PROC;   

...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...