在 plsql 中将 %S 转换为 null
convert %S to null in plsql
我在将 Oracle Form 6i 迁移到 11g 后发现了一个问题。在一种形式中,我正在生成 windows 批处理命令。部分指令如下:
declare
lv_content5c varchar2(300);
begin
lv_content5c:= '@Set sizeout2=%sizeout2:bytes=%';
CLIENT_TEXT_IO.PUTF(out_file,lv_content5c);
CLIENT_TEXT_IO.PUTF(out_file, CHR(10));
CLIENT_TEXT_IO.FCLOSE(out_file);
client_host('cmd /c start '|| lv_filename);
end;
似乎当我将此文本“'@Set sizeout2=%sizeout2:bytes=%'”存储在文件 oracleForm 或 Plsql 中时,将其转换如下:
@Set sizeout2=nullizeout2:bytes=%
因为可以观察到 %s 在输出文件中转换为 null。你介意告诉我问题是什么吗?你有没有遇到过类似的问题?
请注意,我的后端是 12c,前端是 11gR2。
PUTF 将第一个字符串参数作为格式规范,随后的字符串作为内容。此外,您需要一个合适的行终止符。 PUT_LINE(out_file,lv_content5c);并删除以下行(带有 CHR(10)
的行)。
我在将 Oracle Form 6i 迁移到 11g 后发现了一个问题。在一种形式中,我正在生成 windows 批处理命令。部分指令如下:
declare
lv_content5c varchar2(300);
begin
lv_content5c:= '@Set sizeout2=%sizeout2:bytes=%';
CLIENT_TEXT_IO.PUTF(out_file,lv_content5c);
CLIENT_TEXT_IO.PUTF(out_file, CHR(10));
CLIENT_TEXT_IO.FCLOSE(out_file);
client_host('cmd /c start '|| lv_filename);
end;
似乎当我将此文本“'@Set sizeout2=%sizeout2:bytes=%'”存储在文件 oracleForm 或 Plsql 中时,将其转换如下:
@Set sizeout2=nullizeout2:bytes=%
因为可以观察到 %s 在输出文件中转换为 null。你介意告诉我问题是什么吗?你有没有遇到过类似的问题?
请注意,我的后端是 12c,前端是 11gR2。
PUTF 将第一个字符串参数作为格式规范,随后的字符串作为内容。此外,您需要一个合适的行终止符。 PUT_LINE(out_file,lv_content5c);并删除以下行(带有 CHR(10)
的行)。