如何解决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 举报,一经查实,本站将立刻删除。